gpt4 book ai didi

c# - 如何访问 IWebHostBuilder 扩展中的配置

转载 作者:行者123 更新时间:2023-12-03 16:18:52 24 4
gpt4 key购买 nike

正如主题所说,我不知道如何访问在 CreateWebHostBuilder 中设置的 Configuration 对象。
Code :

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.CustomExtension();

在代码示例中,我想在 CustomExtension 方法中访问 Configuration

最佳答案

对于 IWebHostBuilder ,用于配置WebHost管道。

一般方式,如果你想访问Configuration ,您需要通过 Configuration反对 CustomExtension喜欢 :

var config = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();

var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseStartup<Startup>();

另一种方式,你可以尝试像 UseConfiguration访问 Configuration对象,但代码只有在 CreateWebHostBuilder(args).Build().Run() 时才会运行叫做。
    public static class WebHostBuilderExtension
{
public static IWebHostBuilder CustomExtension(this IWebHostBuilder webHostBuilder)
{
return webHostBuilder.ConfigureServices(services => {
var config = services.BuildServiceProvider().GetRequiredService<IConfiguration>();
var connection = config.GetConnectionString("Default");
});
}
public static void CustomAction(IServiceCollection services)
{
var config = services.BuildServiceProvider().GetRequiredService<IConfiguration>();
var connection = config.GetConnectionString("Default");
}
}

用途:
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.CustomExtension()
.ConfigureServices(services => WebHostBuilderExtension.CustomAction(services));

关于c# - 如何访问 IWebHostBuilder 扩展中的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53620670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com