如何从ConfigureServices()中访问CreateDefaultBuilder()提供的IConfiguration?

xpo*_*ort 11 c# .net-core asp.net-core

我通常会做以下事情

static void Main()
{
    IConfiguration config = new ConfigurationBuilder()
                        .SetBasePath(Directory.GetCurrentDirectory())
                        .AddJsonFile("appsettings.json", false, true)
                        .Build();

    Host.CreateDefaultBuilder()
        .ConfigureServices(isc =>
        {
            isc.AddSingleton(config);

            isc.AddDbContext<DbContext>(options =>
            {
                options.UseSqlServer(config.GetConnectionString("Duplicate"));
            });
        })                
        .Build();
}
Run Code Online (Sandbox Code Playgroud)

appsettings.json我只知道已经提供了配置CreateDefaultBuilder(),所以我认为我应该能够按如下方式简化我的代码。

static void Main()
{
    Host.CreateDefaultBuilder()
        .ConfigureServices(isc =>
        {
            isc.AddDbContext<DbContext>(options =>
            {
                options.UseSqlServer(********.GetConnectionString("Duplicate"));
            });
        })                
        .Build();
}
Run Code Online (Sandbox Code Playgroud)

问题

********如何获取默认提供的配置?

juu*_*nas 26

您可以使用另一个重载来访问它ConfigureServices

Host.CreateDefaultBuilder(args)
    .ConfigureServices((context, services) =>
    {
        var config = context.Configuration;
    });
Run Code Online (Sandbox Code Playgroud)