在ASP.NET Core中全局添加"Produces"过滤器

Jan*_*ink 3 c# asp.net-core asp.net-core-webapi

我正在使用ASP.NET Core开发REST Api.我想强制应用程序生成JSON响应,我可以使用"Produces"属性来装饰我的控制器.例:

[Produces("application/json")]
public class ProductsController : ControllerBase
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

但根据这篇文章:https://docs.microsoft.com/en-us/aspnet/core/mvc/models/formatting过滤器可以全局应用,但我无法弄清楚如何.

那里有没有人可以提供一个如何在全球范围内应用"Produces"过滤器的简单示例?

Tse*_*eng 9

链接的文档已经说明了,您只需仔细阅读并按照链接 ;)

请参阅过滤器以了解更多信息,包括如何全局应用过滤器.

当您点击链接时,您会找到一个示例:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc(options =>
    {
        options.Filters.Add(typeof(SampleActionFilter)); // by type
        options.Filters.Add(new SampleGlobalActionFilter()); // an instance
    });

    services.AddScoped<AddHeaderFilterWithDi>();
}
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc(options =>
    {
        options.Filters.Add(new ProducesAttribute("application/json"));
    });
}
Run Code Online (Sandbox Code Playgroud)