1.比较3个设置的优先级,如下图
2.输出
@inject Microsoft.Extensions.Configuration.IConfiguration Configuration
@Configuration["myenv"]
3.结论:
优先级:
appsettings.json <项目环境变量<secrets.json
4.应用:
appsetting.Production.json 中例如数据库链接等机密信息,往往不会放入源码管理库里,而是在发布后再手动添加到生产环境。
本地使用时,每个开发员应当使用secrets.json各自配置机密串信息,该文件不会提交到源码管理库里
5.源码
https://github.com/aspnet/MetaPackages/blob/release/2.2/src/Microsoft.AspNetCore/WebHost.cs
检查文件后,您将看到,以下是读取各种配置源的默认顺序
appsettings.json,
appsettings.{Environment}.json
用户机密
环境变量
命令行参数