.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 没有其他设置,
按照这个顺序,
我有一个 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
检查格式的顺序:
按照这个顺序,