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

时间:2012-06-12 12:15:31

标签: 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;} }

我试图从WebAPI返回上面提到的SitecoreItem,但它会尖叫序列化错误。我做错了什么?

1 个答案:

答案 0 :(得分: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;} 
}
相关问题