ASP.Net Web API。一个项目中的JSON和XML响应

Ant*_*pod 4 controller xml-serialization jsonserializer asp.net-web-api

我有一个ASP.Net Web API项目,该项目已经包含用于以JSON格式返回结果的控制器。现在,我必须添加新的控制器,该控制器应仅接收和返回XML。我知道我可以使用以下选项来推送控制器以返回XML序列化的对象:

GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true
Run Code Online (Sandbox Code Playgroud)

但是,如果我愿意,我希望旧的控制器也将返回XML格式的数据,对吗?这不是我所需要的。那么,如何才能实现我的目标并仅从某些控制器返回XML序列化对象?谢谢。

更新

我尝试了建议的方法,但对我不起作用。我正在使用Fiddler进行测试。请注意,结果仍然是JSON(最后一个屏幕截图)。以下是其他信息:

控制器:

控制者

要求类别:

要求等级

回应类别:

回应等级

在Fiddler中的要求:

提琴手的要求

提琴手的回应:

提琴手的回应

Pio*_*lat 5

内容协商或序列化不是控制器应该关心的事情。

现成的ASP.NET Web API可以返回XML和JSON内容,客户端可以通过设置Accept HTTP标头来请求某些格式。

设置为:

Accept: application/json
Run Code Online (Sandbox Code Playgroud)

如果您想找回JSON

Accept: application/xml
Run Code Online (Sandbox Code Playgroud)

如果您想找回XML

编辑:还请注意,Web API默认情况下使用DataContractSerializer,在您的注释中回答问题:

[DataContract(Namespace = "schemas.datacontract.org/2004/07/Test.Models" )]
public class TheThing
{
    [DataMember]
    public string Name { get; set; }
    [DataMember(Name = "contentname")]
    public string ContentName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)