在 .NET Core 中,可以給配置文件使用提供程序,例如從 JSON 或 XML文件、環境變量或命令行參數中讀取配置。只需要從 NuGet 包 Microsoft.ExtensionsConfiguration 中創建一個ConfigurationBuilder,并向此構建器添加提供程序。要添加 JSON 提供程序,需要調用擴展方法 AddJsonFile。構建器的 Build 方法返回一個實現 IConfiguration 的對象。可以使用此接口通過任何已配置的提供程序來訪問已配置值。下面的示例代碼從配置中檢索 Logging 部分,并將其傳遞給 RegisterServices 方法:
var configurationBuilder = new ConfigurationBuilder() ;
configurationBuilder.AddJsonFile("appsettings.json");
IConfiguration?configuration?= configurationBuilder.Build();
RegisterServices(configuration);
示例應用程序的配置文件根據提供程序和類別配置不同的配置值。對于 Debug 提供程序,LogLevel 設置為 Information。這樣,對于所有類別,Information及以上級別都記錄到 Visual Studio 的 Output 窗口。對于 Console 提供程序,LogLevel 根據類別的不同而不同。在 Console 提供程序的配置之下,所有其他提供程序的默認配置都是基于類別用特定的日志級別定義:
{"Logging": {"Debug":??{"LogLevel": "Information"},"Console": {"LogLevel": {"LoggingConfigurationSample.SampleController": "Information","Default": "Warning"}},"LogLevel": {"Default": "Warning","System": "Information","LoggingConfigurationSample.SampleController": "Warning"}}
}
在日志配置就緒后,現在調用 AddConfiguration 方法,以傳遞對IConfiguration 對象的引用。AddConfiguration 方法需要配置文件中 Logging部分的內容:
static?void?RegisterServices(IConfiguration?configuration)
{var services = new ServiceCollection(); services.AddLogging(builder =>{builder.AddConfiguration(configuration.GetSection("Logging")).AddConsole();?
#if?DEBUGbuilder.AddDebug();
#endif});services.AddScoped<SampleControler>();AppServices = services.BuildServiceProvider();
}
注意:
Microsoft.Extensions.Configuration 的體系結構和使用不同的配置提供程序。
?微信公眾號?
DotNet講堂