Web API.Net响应类型和序列化

Web API.Net响应类型和序列化,.net,asp.net-web-api2,.net-4.6.1,.net,Asp.net Web Api2,.net 4.6.1,有关下列事项: 公共类ClientReturnWrapper:ClientReturnWrapperBase { 公共ClientReturnWrapper(T returnData)=>returnData=returnData; 公共T ReturnData{get;set;} } 公共类ClientReturnWrapperBase { public DateTime Timestamp=>DateTime.Now; public bool HasErrors=>ClientReturnE

有关下列事项:

公共类ClientReturnWrapper:ClientReturnWrapperBase
{
公共ClientReturnWrapper(T returnData)=>returnData=returnData;
公共T ReturnData{get;set;}
}
公共类ClientReturnWrapperBase
{
public DateTime Timestamp=>DateTime.Now;
public bool HasErrors=>ClientReturnErrors!=null;
公共IList ClientReturnErrors{get;set;}
}
公共类ClientReturnError
{
公共字符串错误消息{get;set;}
公共布尔错误致命{get;set;}
}
这:

publicClientReturnWrapper测试()
{
返回新的ClientReturnWrapper(1);
}
返回:

    {"ReturnData":1,"Timestamp":"2019-10-02T12:38:50.9493925+01:00","HasErrors":false,"ClientReturnErrors":null}
鉴于:

public ClientReturnWrapperBase测试程序错误()
{
返回新的ClientReturnWrapperBase();
}
返回:

    {"ReturnData":1,"Timestamp":"2019-10-02T12:38:50.9493925+01:00","HasErrors":false,"ClientReturnErrors":null}

这两个函数都是从浏览器调用的,我希望这两个函数都使用
XML
,但是前者返回
JSON
,而后者正确返回
XML
,尽管缺少属性

这是什么原因


编辑:为了解决下面的问题,即使特别请求
XML
,也会返回
JSON
,因此我怀疑XML序列化程序无法序列化泛型。有解决办法吗?其次,在第二个示例中使用XML序列化程序时,为什么缺少属性?

WebAPI将根据客户端发送的Accept头自动发送JSON或XML,如果您想获取XML,则只需在客户端请求头中添加

Accept:text/html,application/xhtml+xml,application/xml;

如果您想获取XML,WebAPI将根据客户端发送的Accept头自动发送JSON或XML,只需在客户端请求头中添加

Accept:text/html,application/xhtml+xml,application/xml;

谢谢@Joe,我理解这一点-我在问为什么它们的连载方式不同。即使在显式请求XML时,前者返回jsontanks@Joe,我也理解这一点——我在问为什么它们的序列化方式不同。即使在显式请求XML时,前者也会返回JSON