序列化 Web API ASP.NET 继承的类型

本文关键字:继承 类型 NET ASP Web API 序列化 | 更新日期: 2023-09-27 18:36:50

我在 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,但它尖叫着序列化错误。我做错了什么?

序列化 Web API ASP.NET 继承的类型

这与 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;} 
}