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中的要求:

提琴手的回应:

内容协商或序列化不是控制器应该关心的事情。
现成的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)