有时候将自己序列化好的串要发送给别的接口,但是发现接收端的对象与自己建的对象所包含的属性不同,这时候又不想修改自己的对象的属性名字,那怎么办呢?
很简单,就是给自己的属性加上个标识就行,具体看代码:
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,那该属性将不被序列化的
新闻热点
疑难解答