Flow configuration via IHostingEnvironment
This commit is contained in:
parent
7c8b37bcc7
commit
04c30c8bb7
|
|
@ -2,6 +2,7 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// 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.FileProviders;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Hosting
|
namespace Microsoft.AspNet.Hosting
|
||||||
{
|
{
|
||||||
|
|
@ -28,5 +29,10 @@ namespace Microsoft.AspNet.Hosting
|
||||||
/// </summary>
|
/// </summary>
|
||||||
// This must be settable!
|
// This must be settable!
|
||||||
IFileProvider WebRootFileProvider { get; set; }
|
IFileProvider WebRootFileProvider { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the configuration object used by hosting environment.
|
||||||
|
/// </summary>
|
||||||
|
IConfiguration Configuration { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11,7 +11,8 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.AspNet.Http.Abstractions": "1.0.0-*",
|
"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": {
|
"frameworks": {
|
||||||
"net451": {},
|
"net451": {},
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// 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.FileProviders;
|
||||||
using Microsoft.AspNet.Hosting.Internal;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Hosting
|
namespace Microsoft.AspNet.Hosting
|
||||||
{
|
{
|
||||||
|
|
@ -13,5 +13,7 @@ namespace Microsoft.AspNet.Hosting
|
||||||
public string WebRootPath { get; set; }
|
public string WebRootPath { get; set; }
|
||||||
|
|
||||||
public IFileProvider WebRootFileProvider { get; set; }
|
public IFileProvider WebRootFileProvider { get; set; }
|
||||||
|
|
||||||
|
public IConfiguration Configuration { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -10,7 +10,7 @@ namespace Microsoft.AspNet.Hosting
|
||||||
{
|
{
|
||||||
public static class HostingEnvironmentExtensions
|
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)
|
if (options == null)
|
||||||
{
|
{
|
||||||
|
|
@ -46,6 +46,8 @@ namespace Microsoft.AspNet.Hosting
|
||||||
|
|
||||||
var environmentName = options.Environment;
|
var environmentName = options.Environment;
|
||||||
hostingEnvironment.EnvironmentName = environmentName ?? hostingEnvironment.EnvironmentName;
|
hostingEnvironment.EnvironmentName = environmentName ?? hostingEnvironment.EnvironmentName;
|
||||||
|
|
||||||
|
hostingEnvironment.Configuration = configuration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -126,7 +126,7 @@ namespace Microsoft.AspNet.Hosting
|
||||||
var appEnvironment = hostingContainer.GetRequiredService<IApplicationEnvironment>();
|
var appEnvironment = hostingContainer.GetRequiredService<IApplicationEnvironment>();
|
||||||
var startupLoader = hostingContainer.GetRequiredService<IStartupLoader>();
|
var startupLoader = hostingContainer.GetRequiredService<IStartupLoader>();
|
||||||
|
|
||||||
_hostingEnvironment.Initialize(appEnvironment.ApplicationBasePath, _options);
|
_hostingEnvironment.Initialize(appEnvironment.ApplicationBasePath, _options, _config);
|
||||||
if (!string.IsNullOrEmpty(_environmentName))
|
if (!string.IsNullOrEmpty(_environmentName))
|
||||||
{
|
{
|
||||||
_hostingEnvironment.EnvironmentName = _environmentName;
|
_hostingEnvironment.EnvironmentName = _environmentName;
|
||||||
|
|
|
||||||
|
|
@ -144,6 +144,24 @@ namespace Microsoft.AspNet.Hosting
|
||||||
Assert.Equal("http://localhost:5000", app.ServerFeatures.Get<IServerAddressesFeature>().Addresses.First());
|
Assert.Equal("http://localhost:5000", app.ServerFeatures.Get<IServerAddressesFeature>().Addresses.First());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void FlowsConfig()
|
||||||
|
{
|
||||||
|
var vals = new Dictionary<string, string>
|
||||||
|
{
|
||||||
|
{ "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<IHostingEnvironment>();
|
||||||
|
Assert.NotNull(hostingEnvironment.Configuration);
|
||||||
|
Assert.Equal("Microsoft.AspNet.Hosting.Tests", hostingEnvironment.Configuration["Server"]);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void HostingEngineCanBeStarted()
|
public void HostingEngineCanBeStarted()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue