首页 > 代码库 > C#序列化修改元素名称

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,那该属性将不被序列化的

C#序列化修改元素名称