我正在尝试基于asp.net核心创建一个Web-Api。我的要求是,它应该默认支持xml
序列化,而不是json
。
我补充道
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddXmlSerializerFormatters();
但是,默认的序列化程序仍然是json。
我需要它返回xml
而无需客户端指定
{"Accept":"application/xml"}
正如所说的here,你必须强制你的应用程序生成XML而不是JSON:
services.AddMvc(opt =>
{
opt.Filters.Add(new ProducesAttribute("application/xml"));
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
.AddXmlSerializerFormatters();
要更改默认序列化程序,您可以尝试
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options => {
options.OutputFormatters.Insert(0, new XmlDataContractSerializerOutputFormatter());
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}