From 91514c9af7e0f4c44029b51f05a01c6fe4c96e4c Mon Sep 17 00:00:00 2001 From: Chris Ross <Tratcher@Outlook.com> Date: Wed, 16 Jan 2019 16:44:17 -0800 Subject: [PATCH] Update generic host wrapper config #6765 (#6770) --- .../src/GenericHost/GenericWebHostBuilder.cs | 5 +- .../Hosting/test/WebHostBuilderTests.cs | 48 +++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/src/Hosting/Hosting/src/GenericHost/GenericWebHostBuilder.cs b/src/Hosting/Hosting/src/GenericHost/GenericWebHostBuilder.cs index b38bf97f05e..80c8c76ef43 100644 --- a/src/Hosting/Hosting/src/GenericHost/GenericWebHostBuilder.cs +++ b/src/Hosting/Hosting/src/GenericHost/GenericWebHostBuilder.cs @@ -327,7 +327,10 @@ namespace Microsoft.AspNetCore.Hosting.Internal return webHostBuilderContext; } - return (WebHostBuilderContext)contextVal; + // Refresh config, it's periodically updated/replaced + var webHostContext = (WebHostBuilderContext)contextVal; + webHostContext.Configuration = context.Configuration; + return webHostContext; } public string GetSetting(string key) diff --git a/src/Hosting/Hosting/test/WebHostBuilderTests.cs b/src/Hosting/Hosting/test/WebHostBuilderTests.cs index 5fcd8943c2b..fd87f235fd4 100644 --- a/src/Hosting/Hosting/test/WebHostBuilderTests.cs +++ b/src/Hosting/Hosting/test/WebHostBuilderTests.cs @@ -945,6 +945,54 @@ namespace Microsoft.AspNetCore.Hosting } } + [Theory] + [MemberData(nameof(DefaultWebHostBuildersWithConfig))] + public void Build_AppConfigAvailableEverywhere(IWebHostBuilder builder) + { + builder = builder + .CaptureStartupErrors(false) + .ConfigureAppConfiguration((context, configurationBuilder) => { + configurationBuilder.AddInMemoryCollection( + new[] + { + new KeyValuePair<string,string>("appconfig", "appvalue") + }); + }) + .ConfigureLogging((context, logging) => + { + Assert.Equal("appvalue", context.Configuration["appconfig"]); + }) + .ConfigureServices((context, services) => + { + Assert.Equal("appvalue", context.Configuration["appconfig"]); + }) + .UseDefaultServiceProvider((context, services) => + { + Assert.Equal("appvalue", context.Configuration["appconfig"]); + }) + .UseStartup<StartupCheckConfig>() + .UseServer(new TestServer()); + + using (var host = builder.Build()) + { + var configuration = host.Services.GetRequiredService<IConfiguration>(); + Assert.Equal("appvalue", configuration["appconfig"]); + } + } + + public class StartupCheckConfig + { + public StartupCheckConfig(IConfiguration config) + { + Assert.Equal("value", config["testhostingstartup:config"]); + } + + public void Configure(IApplicationBuilder app) + { + + } + } + [Theory] [MemberData(nameof(DefaultWebHostBuildersWithConfig))] public void Build_DoesRunHostingStartupFromPrimaryAssemblyEvenIfNotSpecified(IWebHostBuilder builder) -- GitLab