我想使用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;
}
我创建了一个IProjects列表并将它们转换为'Project'。但是在创建响应时我得到了这个:
配置的格式化程序 'System.Web.Http.Tracing.Tracers.XmlMediaTypeFormatterTracer'不能 写一个'WhereSelectListIterator`2'类型的对象。
那是一个XmlMediaTypeFormatterTracer?我不希望跟踪在序列化时抛出错误。 (顺便说一下:我用自己的XML格式替换了标准的XML格式。但是“XmlMediaTypeFormatterTracer”会抛出异常...... 信息:使用标准格式化程序时出现同样的错误
为什么即使我实现自己的xmlformatter,也会调用此XmlMediaTypeFormatterTracer?
答案 0 :(得分:4)
我的问题解决了
config.Formatters.XmlFormatter.UseXmlSerializer = false;
答案 1 :(得分:0)
您是否在应用程序中启用了跟踪?如果是,则跟踪逻辑将格式化程序包装到其包装器跟踪器格式化程序中。