web api XmlMediaTypeFormatter异常

时间:2012-07-10 12:17:03

标签: interface inversion-of-control asp.net-web-api xml-formatting

我想使用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?

2 个答案:

答案 0 :(得分:4)

我的问题解决了

config.Formatters.XmlFormatter.UseXmlSerializer = false;

答案 1 :(得分:0)

您是否在应用程序中启用了跟踪?如果是,则跟踪逻辑将格式化程序包装到其包装器跟踪器格式化程序中。