默认为asp.net核心中的xml序列化

问题描述 投票:0回答:2

我正在尝试基于asp.net核心创建一个Web-Api。我的要求是,它应该默认支持xml序列化,而不是json。 我补充道

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
                .AddXmlSerializerFormatters();

但是,默认的序列化程序仍然是json。 我需要它返回xml而无需客户端指定

{"Accept":"application/xml"}
c# xml asp.net-core serialization
2个回答
0
投票

正如所说的here,你必须强制你的应用程序生成XML而不是JSON:

services.AddMvc(opt =>
{
    opt.Filters.Add(new ProducesAttribute("application/xml"));
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
    .AddXmlSerializerFormatters();

0
投票

要更改默认序列化程序,您可以尝试

public void ConfigureServices(IServiceCollection services)
{

    services.AddMvc(options => {
        options.OutputFormatters.Insert(0, new XmlDataContractSerializerOutputFormatter());
    }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
© www.soinside.com 2019 - 2024. All rights reserved.