Apply `configureHostServices` after the `fallbackProvider`
- allows MVC to override `IApplicationEnvironment` in functional tests
This commit is contained in:
parent
28cc37de96
commit
89a1ec1cb5
|
|
@ -17,16 +17,19 @@ namespace Microsoft.AspNet.Hosting
|
||||||
private static IServiceCollection Import(IServiceProvider fallbackProvider, Action<IServiceCollection> configureHostServices)
|
private static IServiceCollection Import(IServiceProvider fallbackProvider, Action<IServiceCollection> configureHostServices)
|
||||||
{
|
{
|
||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
if (configureHostServices != null)
|
|
||||||
{
|
|
||||||
configureHostServices(services);
|
|
||||||
}
|
|
||||||
var manifest = fallbackProvider.GetRequiredService<IServiceManifest>();
|
var manifest = fallbackProvider.GetRequiredService<IServiceManifest>();
|
||||||
foreach (var service in manifest.Services)
|
foreach (var service in manifest.Services)
|
||||||
{
|
{
|
||||||
services.AddTransient(service, sp => fallbackProvider.GetService(service));
|
services.AddTransient(service, sp => fallbackProvider.GetService(service));
|
||||||
}
|
}
|
||||||
|
|
||||||
services.AddSingleton<IServiceManifest>(sp => new HostingManifest(services));
|
services.AddSingleton<IServiceManifest>(sp => new HostingManifest(services));
|
||||||
|
|
||||||
|
if (configureHostServices != null)
|
||||||
|
{
|
||||||
|
configureHostServices(services);
|
||||||
|
}
|
||||||
|
|
||||||
return services;
|
return services;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue