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

标签 c# asp.net-core

正如主题所说,我不知道如何访问在 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/

相关文章:

c# - 如何忽略将 xml 反序列化为对象时的 soap 内容?

c# - T 之间的映射 --> IHandler<T>

c# - 排名页面 - 在哪里计算大的东西(数据库或代码)?

c# - 实现 ICollectionViewLiveShaping

c# - 无法加载 DLL 依赖项。如何阅读 fuslogvw?

c# - 在 Asp Net Core 6 中使用 Github 进行身份验证

c# - 编译新的 .NET Core 项目意外依赖

c# - 如何在 cshtml View 中使用 Asp .NET Core MVC 中的变量?

asp.net-core - 没有指定补助金的存储机制

c# - 在 IIS 上上传文件时 ASP.NET Core API 500 内部服务器错误