.NET 6 web api 项目需要导出 XML 和 JSON

.NET 6 web api project needs to export XML and JSON

我有一个 Web api 项目,其中一些操作(大部分)需要导出 JSON,还有一些(只有少数)需要导出为 XML。

由于默认情况下不支持 XML,因此我添加了

services.AddControllers(options =>
{
    options.OutputFormatters.Add(new Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter());
})

位到我的Startup.cs,并添加到需要XML的Action中:

[Produces("application/xml")]
public async Task<IActionResult> ExportAsKML(Guid id)

这适用于该方法,但现在我所有的控制器操作都默认为 XML。我怎样才能将默认值保持为 JSON,但只对某些特定的操作使用 XML?

您是否更改了 OutputFormatters 中格式的顺序?

根据官方文档:格式化程序按照插入的顺序进行评估,其中第一个优先。 : https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/custom-formatters?view=aspnetcore-6.0#configure-mvc-to-use-a-custom-formatter

检查格式的顺序: 当我调试时: 默认格式变为 xml 没有其他设置,

按照这个顺序,