如何在ConfigureAppConfiguration c#中获取appsettings值

luc*_*uci 1 c#-3.0 asp.net-core

我必须通过 appsettings 或任何方式在 CreateHostBuilder 中设置一个可配置值;我刚刚尝试使用应用程序设置

public static IHostBuilder CreateHostBuilder(string[] args) =>
                 Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                        webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
                        {
                            var url = _configuration.GetSection("url");
                            config.SetBasePath(hostingContext.HostingEnvironment.ContentRootPath)
                             .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true).AddOcelot(// Set url here)

                               .AddEnvironmentVariables();
                        });

                    });
Run Code Online (Sandbox Code Playgroud)

但 url 值始终返回 null。有谁有更好的解决方案来获取ConfigureAppConfiguration中的appsetings,或者有更好的想法来使用任何其他想法来设置配置值?

Ren*_*ena 5

您可以像下面这样更改:

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
        webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
        {
            var settings = config.Build();
            var url = settings.GetSection("url").Value;

        });

    });
Run Code Online (Sandbox Code Playgroud)