在ASP.NET的Web API序列化继承类型(Serializing inherited type

2019-09-18 00:53发布

序列化的Web API继承的对象时,我有一个问题。

[DataContract] 
public class Item{
     [DataMember]
     public int ID{get; set;}
     [DataMember]
     public string Name{get; set;} }

[DataContract] 
public class SitecoreItem : Item{
     [DataMember]     
     public DbType SitecoreInstance{get; set;} }

我试图从返回的WebAPI上述SitecoreItem,但它尖叫序列化的错误。 我究竟做错了什么?

Answer 1:

这并不比WCF序列不同。 只要使用KnownType

[DataContract] 
[KnownType(typeof(SitecoreItem))]
public class Item{
     [DataMember]
     public int ID{get; set;}
     [DataMember]
     public string Name{get; set;} }

[DataContract] 
public class SitecoreItem : Item{
     [DataMember]     
     public DbType SitecoreInstance{get; set;} 
}


文章来源: Serializing inherited types in ASP.NET Web API