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