.Net Configuration配置优先级问题

配置文件中key不区分大小写,所以请大胆使用驼峰.方便自己也方便他人.

微软有话说

官方文档

Host.CreateDefaultBuilder(String[]) 方法按照以下顺序为应用提供默认配置:

1.ChainedConfigurationProvider:添加现有的 IConfiguration 作为源。
2.使用 JSON 配置提供程序通过 appsettings.json 提供。
3.使用 JSON 配置提供程序通过 appsettings.Environment.json 提供 。 例如,appsettings.Production.json 和 appsettings.Development.json 。
4.应用在 Development 环境中运行时的应用机密。
5.使用环境变量配置提供程序通过环境变量提供。
6.使用命令行配置提供程序通过命令行参数提供。

后来添加的配置提供程序会替代之前的密钥设置。 例如,如果在 appsettings.json 和环境中设置了 SomeKey,则会使用环境值。 通过默认配置提供程序,命令行配置提供程序将替代其他所有提供程序。

源码探究

https://blog.csdn.net/sd7o95o/article/details/108353424

最终结论

优先级从高到低
ConfigureAppConfiguration(自定义读取)>CommandLine(命令行参数)>Environment(环境变量)>appsetting.json(默认配置文件)

原文地址:https://www.cnblogs.com/vsnb/p/15796770.html