我想使用IoC/web api框架的依赖解析程序进行解耦。
XmlFormatter无法序列化接口,。。。好的。但是如果我不能返回xml,IoC和DependencyResolver的目的是什么?
我甚至不能这样做:(我的ApiController中的方法)
public HttpResponseMessage Get()
{
IEnumerable<Project> projects = new List<IProject>() { new Project(), new Project() }.Select(p => p as Project);
HttpResponseMessage response = Request.CreateResponse<IEnumerable<Project>>(HttpStatusCode.OK, projects);
return response;
}
我创建了一个IP项目列表,并将它们强制转换为"项目"。但在创建响应时,我得到的是:
配置的格式化程序"System.Web.Http.Tracing.Tracers.XmlMediaTypeFormatterTracer"不能写入"WhereSelectListIterator"类型的对象"2"。
那是XmlMediaTypeFormatterTracer吗?我不想要在序列化时抛出错误的跟踪。(顺便说一句:我用自己的XML格式化程序替换了标准XML格式化程序。然而,"XmlMediaTypeFormatterTracer"引发了异常。。。信息:我在使用标准格式化程序时得到相同的错误)
为什么即使我实现了自己的xmlformatter,也要调用这个XmlMediaTypeFormatterTracer?
解决了我的问题
config.Formatters.XmlFormatter.UseXmlSerializer = false;
您在应用程序中启用了跟踪吗?如果是,跟踪逻辑将格式化程序包装到其a包装跟踪程序格式化程序中。