Updated to use service collection

This commit is contained in:
David Fowler 2014-03-14 14:22:20 -07:00
parent 2b7272fe07
commit c3e0279aac
4 changed files with 25 additions and 12 deletions

View File

@ -27,8 +27,9 @@ namespace Microsoft.AspNet.Hosting
config.AddIniFile(HostingIniFile); config.AddIniFile(HostingIniFile);
} }
var services = new ServiceProvider(_serviceProvider) var serviceCollection = new ServiceCollection();
.Add(HostingServices.GetDefaultServices(config)); serviceCollection.Add(HostingServices.GetDefaultServices(config));
var services = serviceCollection.FallbackServices;
var appEnvironment = _serviceProvider.GetService<IApplicationEnvironment>(); var appEnvironment = _serviceProvider.GetService<IApplicationEnvironment>();

View File

@ -1,5 +1,6 @@
using System; using System;
using Microsoft.AspNet.DependencyInjection; using Microsoft.AspNet.DependencyInjection;
using Microsoft.AspNet.DependencyInjection.Fallback;
namespace Microsoft.AspNet.Hosting namespace Microsoft.AspNet.Hosting
{ {
@ -7,9 +8,12 @@ namespace Microsoft.AspNet.Hosting
{ {
public static IDisposable Start() public static IDisposable Start()
{ {
var serviceCollection = new ServiceCollection();
serviceCollection.Add(HostingServices.GetDefaultServices());
var context = new HostingContext var context = new HostingContext
{ {
Services = new ServiceProvider().Add(HostingServices.GetDefaultServices()) Services = serviceCollection.BuildServiceProvider()
}; };
var engine = context.Services.GetService<IHostingEngine>(); var engine = context.Services.GetService<IHostingEngine>();
@ -17,6 +21,7 @@ namespace Microsoft.AspNet.Hosting
{ {
throw new Exception("TODO: IHostingEngine service not available exception"); throw new Exception("TODO: IHostingEngine service not available exception");
} }
return engine.Start(context); return engine.Start(context);
} }
} }

View File

@ -4,6 +4,7 @@ using System.Threading.Tasks;
using Microsoft.AspNet.Abstractions; using Microsoft.AspNet.Abstractions;
using Microsoft.AspNet.DependencyInjection; using Microsoft.AspNet.DependencyInjection;
using Microsoft.AspNet.Hosting.Server; using Microsoft.AspNet.Hosting.Server;
using Microsoft.AspNet.DependencyInjection.Fallback;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Hosting namespace Microsoft.AspNet.Hosting
@ -15,8 +16,9 @@ namespace Microsoft.AspNet.Hosting
[Fact] [Fact]
public void HostingEngineCanBeResolvedWithDefaultServices() public void HostingEngineCanBeResolvedWithDefaultServices()
{ {
var services = new ServiceProvider() var serviceCollection = new ServiceCollection();
.Add(HostingServices.GetDefaultServices()); serviceCollection.Add(HostingServices.GetDefaultServices());
var services = serviceCollection.BuildServiceProvider();
var engine = services.GetService<IHostingEngine>(); var engine = services.GetService<IHostingEngine>();
@ -26,8 +28,9 @@ namespace Microsoft.AspNet.Hosting
[Fact] [Fact]
public void HostingEngineCanBeStarted() public void HostingEngineCanBeStarted()
{ {
var services = new ServiceProvider() var serviceCollection = new ServiceCollection();
.Add(HostingServices.GetDefaultServices()); serviceCollection.Add(HostingServices.GetDefaultServices());
var services = serviceCollection.BuildServiceProvider();
var engine = services.GetService<IHostingEngine>(); var engine = services.GetService<IHostingEngine>();

View File

@ -1,13 +1,14 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Microsoft.AspNet.DependencyInjection; using Microsoft.AspNet.DependencyInjection;
using Microsoft.AspNet.DependencyInjection.Fallback;
using Microsoft.AspNet.Hosting.Startup; using Microsoft.AspNet.Hosting.Startup;
using Microsoft.AspNet.Hosting.Fakes; using Microsoft.AspNet.Hosting.Fakes;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Hosting namespace Microsoft.AspNet.Hosting
{ {
public class StartupManagerTests : IFakeStartupCallback public class StartupManagerTests : IFakeStartupCallback
{ {
private readonly IList<object> _configurationMethodCalledList = new List<object>(); private readonly IList<object> _configurationMethodCalledList = new List<object>();
@ -15,7 +16,9 @@ namespace Microsoft.AspNet.Hosting
[Fact] [Fact]
public void DefaultServicesLocateStartupByNameAndNamespace() public void DefaultServicesLocateStartupByNameAndNamespace()
{ {
IServiceProvider services = new ServiceProvider().Add(HostingServices.GetDefaultServices()); var serviceCollection = new ServiceCollection();
serviceCollection.Add(HostingServices.GetDefaultServices());
var services = serviceCollection.BuildServiceProvider();
var manager = services.GetService<IStartupManager>(); var manager = services.GetService<IStartupManager>();
@ -28,9 +31,10 @@ namespace Microsoft.AspNet.Hosting
[Fact] [Fact]
public void StartupClassMayHaveHostingServicesInjected() public void StartupClassMayHaveHostingServicesInjected()
{ {
IServiceProvider services = new ServiceProvider() var serviceCollection = new ServiceCollection();
.Add(HostingServices.GetDefaultServices()) serviceCollection.Add(HostingServices.GetDefaultServices());
.AddInstance<IFakeStartupCallback>(this); serviceCollection.AddInstance<IFakeStartupCallback>(this);
var services = serviceCollection.BuildServiceProvider();
var manager = services.GetService<IStartupManager>(); var manager = services.GetService<IStartupManager>();