使用依赖注入访问配置
建议的方法是避免这样做,而是使用 IOptions<TOptions>
和 IServiceCollection.Configure<TOptions>
。
也就是说,将 IConfigurationRoot
可用的应用程序扩展起来仍然非常简单。
在 Startup.cs 构造函数中,你应该具有以下代码来构建配置,
Configuration = builder.Build();
这里 Configuration
是 IConfigurationRoot
的一个实例,并将此实例作为 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")
}