ASP.NET Core中的配置详解
ASP.NETCore提供了一个灵活可扩展,基于键值的配置系统.但是配置系统独立于ASP.NETCore是Microsoft.Extensions类库的部分.它可以用于任何类型的应用程序
1、以键-值对的形式读取配置
appsettings.json文件:
{
"Position":{
"Title":"编辑器",
"Name":"JoeSmith"
},
"MyKey":"Myappsettings.jsonValue",
"Logging":{
"LogLevel":{
"Default":"Information",
"Microsoft":"Warning",
"Microsoft.Hosting.Lifetime":"Information"
}
},
"AllowedHosts":"*"
}
在ConfigureServices方法里面添加如下测试代码:
varmyKeyValue=Configuration["MyKey"]; vartitle=Configuration["Position:Title"]; varname=Configuration["Position:Name"]; vardefaultLogLevel=Configuration["Logging:LogLevel:Default"];
2、多环境配置
使用默认配置,EnvironmentVariablesConfigurationProvider会在读取appsettings.json、appsettings.Environment.json和机密管理器后从环境变量键值对加载配置。因此,从环境中读取的键值会替代从appsettings.json、appsettings.Environment.json和机密管理器中读取的值。在launchSettings.json中设置的环境变量,在launchSettings.json中设置的环境变量将替代在系统环境中设置的变量。
3、读取结构化的配置数据
添加一个类TestSubSectionConfig对应于配置文件中的subsection节点
publicclassTestSubSectionConfig
{
publicstringSubOption1{get;set;}
publicstringSubOption2{get;set;}
}
在ConfigureServices方法里面添加如下测试代码:
//使用GetSection解析配置文件的节
varsubsectionOptions=Configuration.GetSection("subsection").Get();
varsuboption2=subsectionOptions.SubOption2;
Console.WriteLine($"subsection:suboption2:{suboption2}");
如果需要在Controller里面使用,可以通过依赖注入的方式:
在ConfigureServices里面注册配置项。
publicvoidConfigureServices(IServiceCollectionservices)
{
//注册配置到服务容器
services.Configure(Configuration.GetSection("subsection"));
//varsubsectionOptions=Configuration.GetSection("subsection").Get();
//services.Configure(options=>
//{
//options.SubOption1=subsectionOptions["suboption1"];
//options.SubOption2=subsectionOptions["suboption2"];
//});
}
publicclassHomeController:Controller
{
privateTestSubSectionConfig_subSectionConfig;
privateILogger_logger;
publicHomeController(IOptionsoption,ILoggerlogger)
{
_subSectionConfig=option.Value;
_logger=logger;
}
publicIActionResultIndex()
{
_logger.LogInformation($"SubOption1:{_subSectionConfig.SubOption1}");
_logger.LogInformation($"SubOption2:{_subSectionConfig.SubOption2}");
returnView();
}
}
到此这篇关于ASP.NETCore中的配置详解的文章就介绍到这了,更多相关ASP.NETCore配置内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!