使用依赖注入访问配置

建议的方法是避免这样做,而是使用 IOptions<TOptions>IServiceCollection.Configure<TOptions>

也就是说,将 IConfigurationRoot 可用的应用程序扩展起来仍然非常简单。

在 Startup.cs 构造函数中,你应该具有以下代码来构建配置,

 Configuration = builder.Build();

这里 ConfigurationIConfigurationRoot 的一个实例,并将此实例作为 Singleton 添加到 ConfigureServices 方法 Startup.cs 中的服务集合中,

 public void ConfigureServices(IServiceCollection services)
 {
    services.AddSingleton<IConfigurationRoot>(provider => Configuration);

例如,你现在可以访问 Controller / Service 中的配置

  public MyController(IConfigurationRoot config){
      var setting1= config.GetValue<string>("Setting1")
  }