【ASP.NET】DataContract序列化,反序列化对象中包含用接口声明的属性时的处理方法
为此对象添加KnownType属性(Attribute)。类型为用接口声明的属性(Property)的所有可能类型。
1 public interface IKey 2 { 3 [DataMember] 4 int Id { get; set; } 5 6 [DataMember] 7 string Name { get; set; } 8 } 9 10 [DataContract] 11 public abstract class KeyBase : IKey 12 { 13 [DataMember] 14 public int Id { get; set; } 15 16 [DataMember] 17 public string Name { get; set; } 18 } 19 20 [DataContract] 21 public class Key : KeyBase 22 { 23 [DataMember] 24 public int Age { get; set; } 25 } 26 27 [KnownType(typeof(KeyBase))] 28 [KnownType(typeof(Key))] 29 [DataContract] 30 public class Data 31 { 32 [DataMember] 33 public IKey Key { get; set; } 34 35 [DataMember] 36 public string Message { get; set; } 37 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。