我有一个ASP.Net Web API项目,它已经包含控制器以JSON格式返回结果。现在我必须添加新的控制器,它应该只接收和返回XML。我知道我可以使用下面的选项推控制器返回XML序列化对象:ASP.Net Web API。一个项目中的JSON和XML响应
GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true
但是,如果我这样做,我想到的是,旧的控制器也将返回XML格式的数据,对不对?这不是我所需要的。那么,我如何才能实现我的目标并仅从一些控制器返回XML序列化对象?谢谢。
UPDATE
我曾尝试建议的方法,但它并没有为我工作。我正在使用Fiddler进行测试。请注意这个结果仍然是JSON(最后截图)下面是其他信息:
控制器:
Request类:
Response类:
请求在提琴手:在提琴手
响应:
谢谢你的回答。我已经删除了强制XML序列化的行(在原始问题中提到过)。但现在我发现XML序列化忽略了设置XML元素名称的属性:[XmlElement(“contentname”)] public string ContentName {get;组; }我能以某种方式修复它吗? – Antipod 2013-03-11 21:16:32
我也想在我的XML响应中避免以下属性:xmlns:i =“http://www.w3.org/2001/XMLSchema-instance”and xmlns =“http://schemas.datacontract.org/ 2004/07/Test.Models“ – Antipod 2013-03-11 21:25:19
Piotr Walat,谢谢你的答案中的编辑部分。不幸的是,它不适合我。我不知道为什么。我用一些截图更新了我的原始问题。 – Antipod 2013-03-11 22:29:14