1
我的模型類,而不是XML:的WebAPI連載返回JSON時,從抽象類型正確派生
public abstract class BaseClass
{
public string id { get; set; }
}
[KnownType(typeof(BaseClass))]
public class ChildClass1 : BaseClass
{
public string shape { get; set; }
}
[KnownType(typeof(BaseClass))]
public class ChildClass2: BaseClass
{
public string color { get; set; }
}
public class Widget
{
public List<BaseClass> Contents { get; set; }
public Widget()
{
Contents = new List<BaseClass>();
}
}
我的Web API端點:
[HttpGet]
public Widget Get()
{
Widget widget = new Widget();
ChildClass1 cc1 = new ChildClass1();
cc1.id = "1234";
cc1.shape = "round";
ChildClass2 cc2 = new ChildClass2();
cc2.id = "4321";
cc2.color = "red";
widget.Contents.Add(cc1);
widget.Contents.Add(cc2);
return widget;
}
當請求作爲XML輸出,這是有問題序列化我的派生類。
'ObjectContent`1'類型未能序列化響應正文 內容類型'application/xml;字符集= UTF-8' 。
輸入數據協定名稱爲'WebApplication1.Models.ChildClass1' 'ChildClass1:http://schemas.datacontract.org/2004/07/WebApplication1.Models' 不是預期的。試想,如果你使用的DataContractSerializer是 或添加不是靜態已知 已知類型列表中的任何類型的使用DataContractResolver - 例如,通過使用KnownTypeAttribute 屬性或將它們添加到已知類型傳遞給 串行器的列表。