在ASP.NET Web API中序列化inheritance的类型

在Web API中序列化inheritance对象时遇到问题。

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

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