我有一个带有几个控制器的WebApi,它们会返回不同的结果.例如,一个控制器返回一个IEnumberable,另一个控制器返回一个Bar,另一个控制器返回IEnumberable等IEnumberable等,我所要做的就是:
return Ok(thething)
Run Code Online (Sandbox Code Playgroud)
一切正常,甚至复杂的嵌套对象都被序列化没有问题.
现在,客户端要求在Wrapper中返回所有结果:
public class Wrapper
{
public bool Success { get; set; }
public int ErrorCode { get; set; }
public String ErrorMessage { get; set; }
public String Referer { get; set; }
public Object Payload { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
认为这将是微不足道的,但当我尝试从控制器返回时:
return Ok( new Wrapper { Success=true, Referer="me", Payload=thething)
Run Code Online (Sandbox Code Playgroud)
我收到序列化错误.
异常消息是:
'ObjectContent`1'类型无法序列化内容类型'application/xml的响应主体; 字符集= UTF-8' .
内部异常消息是:
输入'System.Linq.Enumerable + WhereSelectListIterator
2[[EPiServer.Find.Api.SearchHit1 [[DGTNext.Api.Data.Entities.ProductSummary,DGTNext.Api.Entities,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]],EPiServer.Find,Version = 9.6.0.3185,Culture = neutral,PublicKeyToken = 8fe83dea738b45b7],[DGTNext.Api.Data.Entities.ProductSummary,DGTNext.Api.Entities,Version = …