使用 Host.CreateDefaultBuilder 的多个配置 json 文件

Joe*_*nos 0 .net c# configuration .net-6.0

在控制台应用程序中,我使用以下设置:

IHost host = Host.CreateDefaultBuilder()
    .ConfigureServices((context, services) =>
    {
        services.AddSingleton<Program>();
        string someConfigItem = context.Configuration["SomeConfigItem"];
    })
    .Build();

host.Services.GetRequiredService<Program>().Go();
Run Code Online (Sandbox Code Playgroud)

这会自动读取,appsettings.json而无需显式使用配置生成器或类似的东西。

如果我想添加额外的 JSON 文件怎么办?使用配置生成器,您只需.AddJsonFile()多次调用即可添加多个文件,但我似乎找不到在这里添加更多文件的地方。

spz*_*tbg 7

我认为这是添加另一个配置文件的正确位置:

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();
Run Code Online (Sandbox Code Playgroud)