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}
前缀过滤效果:
