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

时间:2014-11-19 12:33:07   收藏:0   阅读:133

为此对象添加KnownType属性(Attribute)。类型为用接口声明的属性(Property)的所有可能类型。

 示例如下:
 
bubuko.com,布布扣
 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     }
View Code

 

 

评论(0)
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!