1.10 配置框架:使用环境变量配置提供程序接收环境变量.pdf
早期一个操作系统运行多个应用程序,所以应用程序注入配置的方式一般都是通过文件或命令行。
有了 Docker 后,每个应用程序相当于运行于一个独立的操作系统中,即 Docker 提供的环境隔离能力,让我们能更方便的使用环境变量来配置应用程序。
环境变量依然可以直接在 launchSettings.json 进行编辑:
{
"profiles": {
"ConfigurationEnvironmentVariablesDemo": {
"commandName": "Project",
"environmentVariables": {
"KEY1": "value1",
"KEY2": "value2",
"SECTION1__KEY3": "value3",
"SECTION1__SECTION2__KEY4": "value4",
"XIAO_KEY1": "xiao key1"
}
}
}
}
前缀过滤:仅注入指定前缀的环境变量
static void Main(string[] args)
{
var builder = new ConfigurationBuilder();
//builder.AddEnvironmentVariables();
//var configurationRoot = builder.Build();
//Console.WriteLine($"key1:{configurationRoot["key1"]}");
//Console.WriteLine($"key2:{configurationRoot["key2"]}");
//#region 分层键
//var section = configurationRoot.GetSection("SECTION1");
//Console.WriteLine($"KEY3:{section["KEY3"]}");
//var section2 = configurationRoot.GetSection("SECTION1:SECTION2");
//Console.WriteLine($"KEY4:{section2["KEY4"]}");
//#endregion
#region 前缀过滤
builder.AddEnvironmentVariables("XIAO_");
var configurationRoot = builder.Build();
Console.WriteLine($"KEY1:{configurationRoot["KEY1"]}");
Console.WriteLine($"KEY2:{configurationRoot["KEY2"]}");
#endregion
}
前缀过滤效果: