ASP.NET Core配置如何为?
摘要:[TOC] .NET Core 定义配置的方式不同于之前 NET 版本,之前是依赖于 System.Configuration 的 app.config 和 XML 配置文件 web.config。 新的配置系统更加轻量级,并且具有更好的扩
目录以键-值对的形式读取配置多环境配置读取结构化的配置数据参考
.NET Core 定义配置的方式不同于之前 NET 版本,之前是依赖于 System.Configuration 的 app.config 和 XML 配置文件 web.config。 新的配置系统更加轻量级,并且具有更好的扩展性,其最大的特点就是支持多样化的数据源。我们可以采用文件格式(INI、JSON 或 XML),也可以使用内存的变量作为配置的数据源,或直接配置定义在持久化的文件甚至数据库中。
以键-值对的形式读取配置
新建一个 ASP .NET Core Web 应用程序,修改appsettings.json为:
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"option1": "value1_from_json",
"option2": 2,
"subsection": {
"suboption1": "subvalue1_from_json",
"suboption2": "subvalue2_from_json"
},
"wizards": [
{
"Name": "Gandalf",
"Age": "1000"
},
{
"Name": "Harry",
"Age": "17"
}
],
"EnvConfig": "Production"
}
在ConfigureServices方法里面添加如下测试代码:
//直接访问,节点由冒号(:)分隔
var option1 = Configuration["option1"];
var suboption1 = Configuration["subsection:suboption1"];
var wizards_0 = Configuration["wizards:0:Name"];
Console.WriteLine($"option1: {option1}");
Console.WriteLine($"subsection:suboption1: {suboption1}");
Console.WriteLine($"wizards:0:Name: {wizards_0}");
查看输出:
TestConfigration> option1: value1_from_json
TestConfigration> subsection:suboption1: subvalue1_from_json
TestConfigration> wizards:0:Name: Gandalf
多环境配置
修改更改appsettings.Development.json为:
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"EnvConfig": "Development"
}
注意EnvConfig的配置值为Development。
