ASP.NET Core 2.0中间件-访问配置设置

问题描述:

在asp.net核心Web API中间件中,是否可以访问中间件中的配置?有人可以指导我如何做到吗?

In a asp.net core web api middleware, is it possible to access the configuration inside the middleware? Can someone guide me how this is done?

middle-ware中,您可以访问设置.为此,您需要在middle-ware构造函数中获取IOptions<AppSettings>.请参阅以下示例.

In a middle-ware you can access settings. To achieve this, you need to get IOptions<AppSettings> in the middle-ware constructor. See following sample.

public static class HelloWorldMiddlewareExtensions
{
    public static IApplicationBuilder UseHelloWorld(
        this IApplicationBuilder builder)
    {
        return builder.UseMiddleware<HelloWorldMiddleware>();
    }
}

public class HelloWorldMiddleware
{
    private readonly RequestDelegate _next;
    private readonly AppSettings _settings;

    public HelloWorldMiddleware(
        RequestDelegate next,
        IOptions<AppSettings> options)
    {
        _next = next;
        _settings = options.Value;
    }

    public async Task Invoke(HttpContext context)
    {
        await context.Response.WriteAsync($"PropA: {_settings.PropA}");
    }
}

public class AppSettings
{
    public string PropA { get; set; }
}

有关更多信息,请参见此处.

For more information see here.