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

Adding the "Produces" filter globally in ASP.NET Core

我正在使用 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" 过滤器?

linked 文档已经说明了,您只需 阅读 仔细 并遵循 link ;)

See Filters to learn more, including how to apply filters globally.

当您按照 link 进行操作时,您会找到一个示例:

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