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

时间:2017-01-04 11:16:48

标签: c# asp.net-core asp.net-core-webapi

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

[Produces("application/json")]
public class ProductsController : ControllerBase
{
    ...
}

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

是否有人可以提供一个简单的例子来说明如何应用" Produces"全球过滤?

1 个答案:

答案 0 :(得分:7)

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

  

请参阅Filters了解详情,包括如何全局应用过滤器。

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

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>();
}

在你的情况下:

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