C#序列化修改元素名称

有时候将自己序列化好的串要发送给别的接口,但是发现接收端的对象与自己建的对象所包含的属性不同,这时候又不想修改自己的对象的属性名字,那怎么办呢?

很简单,就是给自己的属性加上个标识就行,具体看代码:

 1     [DataContract]
 2     public class SampleClass
 3     {
 4         [DataMember(Name = "StudentName")]
 5         public string Name { get; set; }
 6         [DataMember(Name = "StudentAge")]
 7         public Int32 Age { get; set; }
 8         [DataMember(Name = "StudentAddress")]
 9         public string Address { get; set; }
10
11         public override string ToString()
12         {
13             using (MemoryStream menoryStream = new MemoryStream())
14             {
15                 DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(SampleClass));
16                 serializer.WriteObject(menoryStream, this);
17                 return Encoding.UTF8.GetString(menoryStream.ToArray());
18             }
19         }
20     }

通过DataContract指定了数据协定之后,就可以为需要序列化的属性加上DataMember特性,并传递Name参数修改属性的名字,Order排序...是不是很简单,自己去试试吧

注意如果添加了DataContract特性后,如果属性没有添加DataMember,那该属性将不被序列化的

时间: 2024-10-05 03:02:51

C#序列化修改元素名称的相关文章

页面点击名称,修改元素名称

知识点:点击名称,进入编辑名称框,离开页面,保存名称(ajax请求后台接口) 效果: 点击进入名称编辑框 鼠标离开页面保存成功 (1)页面代码 <div style="text-align: center;margin-top: 40px"> <input type="checkbox" name="checkbox" value={{id}}><span id="{{id}}" onclick=

Newtonsoft.Json高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称

手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数据,经过分析一个简单的列表接口每一行数据返回了16个字段,但是手机APP端只用到了其中7个字段,剩余9个字段的数据全部都是多余的,如果接口返回数据为40K大小,也就是说大约20K的数据为无效数据,3G网络下20K下载差不多需要1s,不返回无效数据至少可以节约1s的时间,大大提高用户体验.本篇将为大家

discuz x2 个人资料项排序问题解决方法、添加自定义字段、修改栏目名称和介绍

第一次写文章,希望与人提供方便同时,别误人子弟,自己研究的,大家看不懂只改文件就可以了,如果发现不对的地方请回复或直接通知我,谢谢,本来想在discuz论坛上发的,不懂版规也没时间看版规,怕发错,隔小jj怎么办? (一)个人资料项排序问题解决方法 首先说明一下情况,昨天在做网站的个人资料项时发现后台可以设置排序的(图一)数字越大越往下,但是用户页面(图2)却是一直不变,比如新添加的字段想让他排在第一,在网上找了好久都没有搜索到(或许是我不会搜索)看了大半天,看懂了点, (图2) (图2 修改后的

如何使用StarUML for Mac创建和修改元素

StarUML for Mac是一款UML软件建模器,支持快速编辑中的许多缩写,一次创建元素和关系,如子类,支持接口等.如何使用StarUML for Mac创建和修改元素?下面我们来介绍一下. 如何使用StarUML for Mac创建和修改元素 在本章中,我们将学习如何创建和修改元素.最重要的是,您不应直接创建或修改元素,因为所有更改都应通过undo和redo支持的操作完成.var class1 = new UMLClass()class1.name = "New Name"创建元

Dom修改元素样式

提纲:我们可以通过js来修改元素的大小,颜色,位置等样式 1.element.style                         行内样式的操作 2.element.className              可以获取元素的class名称 3.element.setAttribute("type","button");                获取元素修改元素的行内样式 4.insertRule(rule,index)       .document

xcode如何修改项目名称

有的小伙伴 刚进入ios开发这个行业 总有一个问题,如何把已经创建的项目名称修改掉呢?必须重建工程吗?答案是不必的,我们可以在xcode中直接修改项目名称. 步骤: 直接在xcode中点击左侧工程名, 直接修改名称,修改完毕后 弹出窗口,点击rename, 不要生成快照,点击disable . 点击ok. 项目名称就修改完毕. 第二处需要修改: 点击正在进行运行的项目名称 下面点击 Edit Scheme,  弹出窗口下方 点击 Manage Schemes ,直接选中工程名,直接修改名称.然后

IAR修改工程名称、Tab键设置

IAR 修改工程名称 很多时候用IAR开发都是基于已有工程模板开发的,但是工程模板的名称经常让人头疼:以下是修改办法: 从一个实例工程复制后缀名为"dep,ewd,ewp,eww"的四个文件,并将其重命名为 你自己的名字,如:enddev_module.dep,enddev_module.ewd,enddev_module.ewp,enddev_module.eww. 修改右键打开enddev_module.eww文件,并修改该文件中的中的"<path>$WS_D

修改工程名称

结合如下两篇文章: 修改整个工程内的名字 iOS项目的完整重命名方法图文教程 http://www.cocoachina.com/ios/20150104/10824.html 修改scheme的名字: iOS 开发----修改工程名称 http://my.oschina.net/u/2458687/blog/536842

centos7修改网卡名称

Linux修改网卡名称:1. cd /etc/sysconfig/network-scripts/2. rename eno16777736 eno16 ifcfg-eno167777363. vi ifcfg-eno164. 添加DEVICE=eno165. 修改NAME=eno166. shutdown -r now