5

在 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,但它会发出序列化错误。我究竟做错了什么?

4

1 回答 1

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;} 
}
于 2012-06-12T12:20:02.453 回答