Middleware Appsettings和中间件核心2.1

Middleware Appsettings和中间件核心2.1,middleware,asp.net-core-2.1,appsettings,Middleware,Asp.net Core 2.1,Appsettings,我制作了一个自定义中间件,现在我想访问解决方案中另一个项目中的appsettings。我是否应该将IConfiguration对象注入中间件构造函数,并添加Microsoft.Extensions.Configuration的using语句?还是有更好的方法 我正在使用核心为2.1的ASP.net网页 using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Co

我制作了一个自定义中间件,现在我想访问解决方案中另一个项目中的appsettings。我是否应该将IConfiguration对象注入中间件构造函数,并添加Microsoft.Extensions.Configuration的using语句?还是有更好的方法

我正在使用核心为2.1的ASP.net网页

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using System;
using System.Threading.Tasks;
public class MyMiddleware
{
  public IConfiguration _configuration;
  public MyMiddleware(RequestDelegate next, IConfiguration config)
  {
     _next = next;
     _ configuration = config;
  } 

如果您不需要将所有配置传递给中间件,只需要一个部分就可以使用

IOptions<T>
在Startup.cs中的ConfigureServices方法中

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<MyConfig>(Configuration.GetSection("MyConfig"));
}

如果您不需要将所有配置传递给中间件,只需要一个部分就可以使用

IOptions<T>
在Startup.cs中的ConfigureServices方法中

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<MyConfig>(Configuration.GetSection("MyConfig"));
}
{
  "AppSettings": {
    "AppId": "0001",
    "AppName": "xxxx",
  },
  "MyConfig": {
    "MyConfig1": "xxxxxxx",
    "MyConfig2": "xxxxxxx",
  },
}