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

5 c# asp.net-web-api

我在 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;} }
Run Code Online (Sandbox Code Playgroud)

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

Fil*_*p W 4

这与 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;} 
}
Run Code Online (Sandbox Code Playgroud)