diff --git a/src/Microsoft.AspNet.Hosting.Abstractions/IHostingEnvironment.cs b/src/Microsoft.AspNet.Hosting.Abstractions/IHostingEnvironment.cs
index 6f357d3ca2..cfc96be02f 100644
--- a/src/Microsoft.AspNet.Hosting.Abstractions/IHostingEnvironment.cs
+++ b/src/Microsoft.AspNet.Hosting.Abstractions/IHostingEnvironment.cs
@@ -2,6 +2,7 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.AspNet.FileProviders;
+using Microsoft.Extensions.Configuration;
namespace Microsoft.AspNet.Hosting
{
@@ -28,5 +29,10 @@ namespace Microsoft.AspNet.Hosting
///
// This must be settable!
IFileProvider WebRootFileProvider { get; set; }
+
+ ///
+ /// Gets or sets the configuration object used by hosting environment.
+ ///
+ IConfiguration Configuration { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Microsoft.AspNet.Hosting.Abstractions/project.json b/src/Microsoft.AspNet.Hosting.Abstractions/project.json
index d8764590da..087bc75058 100644
--- a/src/Microsoft.AspNet.Hosting.Abstractions/project.json
+++ b/src/Microsoft.AspNet.Hosting.Abstractions/project.json
@@ -11,7 +11,8 @@
},
"dependencies": {
"Microsoft.AspNet.Http.Abstractions": "1.0.0-*",
- "Microsoft.AspNet.FileProviders.Abstractions": "1.0.0-*"
+ "Microsoft.AspNet.FileProviders.Abstractions": "1.0.0-*",
+ "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-*"
},
"frameworks": {
"net451": {},
diff --git a/src/Microsoft.AspNet.Hosting/HostingEnvironment.cs b/src/Microsoft.AspNet.Hosting/HostingEnvironment.cs
index 57617c2893..e7254247a2 100644
--- a/src/Microsoft.AspNet.Hosting/HostingEnvironment.cs
+++ b/src/Microsoft.AspNet.Hosting/HostingEnvironment.cs
@@ -2,7 +2,7 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.AspNet.FileProviders;
-using Microsoft.AspNet.Hosting.Internal;
+using Microsoft.Extensions.Configuration;
namespace Microsoft.AspNet.Hosting
{
@@ -13,5 +13,7 @@ namespace Microsoft.AspNet.Hosting
public string WebRootPath { get; set; }
public IFileProvider WebRootFileProvider { get; set; }
+
+ public IConfiguration Configuration { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Microsoft.AspNet.Hosting/HostingEnvironmentExtensions.cs b/src/Microsoft.AspNet.Hosting/HostingEnvironmentExtensions.cs
index b6e5e8071a..6b1fd8c346 100644
--- a/src/Microsoft.AspNet.Hosting/HostingEnvironmentExtensions.cs
+++ b/src/Microsoft.AspNet.Hosting/HostingEnvironmentExtensions.cs
@@ -10,7 +10,7 @@ namespace Microsoft.AspNet.Hosting
{
public static class HostingEnvironmentExtensions
{
- public static void Initialize(this IHostingEnvironment hostingEnvironment, string applicationBasePath, WebHostOptions options)
+ public static void Initialize(this IHostingEnvironment hostingEnvironment, string applicationBasePath, WebHostOptions options, IConfiguration configuration)
{
if (options == null)
{
@@ -46,6 +46,8 @@ namespace Microsoft.AspNet.Hosting
var environmentName = options.Environment;
hostingEnvironment.EnvironmentName = environmentName ?? hostingEnvironment.EnvironmentName;
+
+ hostingEnvironment.Configuration = configuration;
}
}
}
\ No newline at end of file
diff --git a/src/Microsoft.AspNet.Hosting/WebHostBuilder.cs b/src/Microsoft.AspNet.Hosting/WebHostBuilder.cs
index 9ad73e964a..bc7e0c7883 100644
--- a/src/Microsoft.AspNet.Hosting/WebHostBuilder.cs
+++ b/src/Microsoft.AspNet.Hosting/WebHostBuilder.cs
@@ -126,7 +126,7 @@ namespace Microsoft.AspNet.Hosting
var appEnvironment = hostingContainer.GetRequiredService();
var startupLoader = hostingContainer.GetRequiredService();
- _hostingEnvironment.Initialize(appEnvironment.ApplicationBasePath, _options);
+ _hostingEnvironment.Initialize(appEnvironment.ApplicationBasePath, _options, _config);
if (!string.IsNullOrEmpty(_environmentName))
{
_hostingEnvironment.EnvironmentName = _environmentName;
diff --git a/test/Microsoft.AspNet.Hosting.Tests/HostingEngineTests.cs b/test/Microsoft.AspNet.Hosting.Tests/HostingEngineTests.cs
index a31fbd5d43..1268e981fe 100644
--- a/test/Microsoft.AspNet.Hosting.Tests/HostingEngineTests.cs
+++ b/test/Microsoft.AspNet.Hosting.Tests/HostingEngineTests.cs
@@ -144,6 +144,24 @@ namespace Microsoft.AspNet.Hosting
Assert.Equal("http://localhost:5000", app.ServerFeatures.Get().Addresses.First());
}
+ [Fact]
+ public void FlowsConfig()
+ {
+ var vals = new Dictionary
+ {
+ { "Server", "Microsoft.AspNet.Hosting.Tests" }
+ };
+
+ var builder = new ConfigurationBuilder()
+ .AddInMemoryCollection(vals);
+ var config = builder.Build();
+ var host = CreateBuilder(config).Build();
+ var app = host.Start();
+ var hostingEnvironment = host.ApplicationServices.GetRequiredService();
+ Assert.NotNull(hostingEnvironment.Configuration);
+ Assert.Equal("Microsoft.AspNet.Hosting.Tests", hostingEnvironment.Configuration["Server"]);
+ }
+
[Fact]
public void HostingEngineCanBeStarted()
{