我有一个基于 .net 框架的解决方案,该解决方案以控制台应用程序作为入口点以及多个依赖的类库项目。 控制台应用程序提供基于
XML
的配置文件:App.Config 用于管理配置键。
我正在寻找类似于.NET5+/Core 的实现,其中
appsettings.<environment>.json
可用于管理配置键,并且可以根据各自的环境定义值。
由于 .net 框架中没有提供开箱即用的实现,因此我一直在寻找混合实现。
这是我发现的一个解决方案,它使用
ConfigurationBuilder()
的Microsoft.Extensions.Configuration;
类并且按预期工作。Configuration Manager
来指示构建器要使用哪个文件。
我的团队正在使用这样的代码:
var builder = new ConfigurationBuilder();
builder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: false);
builder.AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: false);
Configuration = builder.Build()
environment
可能来自环境变量或应用程序的 app.config
文件中的设置。我们使用后一种方法,因为我们的一些应用程序使用需要旧的 XML 样式配置文件的功能。