首页 > 代码库 > 【ASP.NET】DataContract序列化,反序列化对象中包含用接口声明的属性时的处理方法

【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 : IKey12     {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 : KeyBase22     {23         [DataMember]24         public int Age { get; set; }25     }26 27     [KnownType(typeof(KeyBase))]28     [KnownType(typeof(Key))]29     [DataContract]30     public class Data31     {32         [DataMember]33         public IKey Key { get; set; }34 35         [DataMember]36         public string Message { get; set; }37     }
View Code

 

 

【ASP.NET】DataContract序列化,反序列化对象中包含用接口声明的属性时的处理方法