使用 Host.CreateDefaultBuilder 的多个配置 json 文件
Multiple configuration json files using Host.CreateDefaultBuilder
在控制台应用程序中,我使用以下设置:
IHost host = Host.CreateDefaultBuilder()
.ConfigureServices((context, services) =>
{
services.AddSingleton<Program>();
string someConfigItem = context.Configuration["SomeConfigItem"];
})
.Build();
host.Services.GetRequiredService<Program>().Go();
这会自动从 appsettings.json
中读取,而无需显式使用配置生成器或类似的东西。
如果我想添加一个额外的 JSON 文件怎么办?使用配置生成器,您只需多次调用 .AddJsonFile()
即可添加多个文件,但我似乎无法在此处找到添加更多文件的位置。
我认为这是添加另一个配置文件的正确位置:
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
IHost host = Host
.CreateDefaultBuilder()
.ConfigureAppConfiguration(x => x.AddJsonFile("..." /*..., ...*/))
//.ConfigureHostConfiguration(x => x.AddJsonFile("..." /*..., ...*/))
.ConfigureServices((context, services) =>
{
services.AddSingleton<Program>();
string someConfigItem = context.Configuration["SomeConfigItem"];
})
.Build();
在控制台应用程序中,我使用以下设置:
IHost host = Host.CreateDefaultBuilder()
.ConfigureServices((context, services) =>
{
services.AddSingleton<Program>();
string someConfigItem = context.Configuration["SomeConfigItem"];
})
.Build();
host.Services.GetRequiredService<Program>().Go();
这会自动从 appsettings.json
中读取,而无需显式使用配置生成器或类似的东西。
如果我想添加一个额外的 JSON 文件怎么办?使用配置生成器,您只需多次调用 .AddJsonFile()
即可添加多个文件,但我似乎无法在此处找到添加更多文件的位置。
我认为这是添加另一个配置文件的正确位置:
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
IHost host = Host
.CreateDefaultBuilder()
.ConfigureAppConfiguration(x => x.AddJsonFile("..." /*..., ...*/))
//.ConfigureHostConfiguration(x => x.AddJsonFile("..." /*..., ...*/))
.ConfigureServices((context, services) =>
{
services.AddSingleton<Program>();
string someConfigItem = context.Configuration["SomeConfigItem"];
})
.Build();