diff --git a/samples/SampleStartups/StartupBlockingOnStart.cs b/samples/SampleStartups/StartupBlockingOnStart.cs index c46010e18b..65a226f3cd 100644 --- a/samples/SampleStartups/StartupBlockingOnStart.cs +++ b/samples/SampleStartups/StartupBlockingOnStart.cs @@ -11,11 +11,10 @@ namespace SampleStartups { public class StartupBlockingOnStart : StartupBase { - public override IServiceProvider ConfigureServices(IServiceCollection services) + public override void ConfigureServices(IServiceCollection services) { // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 - return base.ConfigureServices(services); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/src/Microsoft.AspNetCore.Hosting/Startup/StartupBase.cs b/src/Microsoft.AspNetCore.Hosting/Startup/StartupBase.cs index 83e65c8d9e..5a180ba9b4 100644 --- a/src/Microsoft.AspNetCore.Hosting/Startup/StartupBase.cs +++ b/src/Microsoft.AspNetCore.Hosting/Startup/StartupBase.cs @@ -11,36 +11,40 @@ namespace Microsoft.AspNetCore.Hosting { public abstract void Configure(IApplicationBuilder app); - public virtual IServiceProvider ConfigureServices(IServiceCollection services) + IServiceProvider IStartup.ConfigureServices(IServiceCollection services) + { + ConfigureServices(services); + return CreateServiceProvider(services); + } + + public virtual void ConfigureServices(IServiceCollection services) + { + } + + public virtual IServiceProvider CreateServiceProvider(IServiceCollection services) { return services.BuildServiceProvider(); } } - public abstract class StartupBase : IStartup + public abstract class StartupBase : StartupBase { - private readonly IServiceProviderFactory _factory; + private readonly IServiceProviderFactory _factory; - public StartupBase(IServiceProviderFactory factory) + public StartupBase(IServiceProviderFactory factory) { _factory = factory; } - public abstract void Configure(IApplicationBuilder app); - - public virtual void ConfigureServices(IServiceCollection services) + public override IServiceProvider CreateServiceProvider(IServiceCollection services) { - - } - - IServiceProvider IStartup.ConfigureServices(IServiceCollection services) - { - ConfigureServices(services); var builder = _factory.CreateBuilder(services); ConfigureContainer(builder); return _factory.CreateServiceProvider(builder); } - public virtual void ConfigureContainer(TContainerBuilder containerBuilder) { } + public virtual void ConfigureContainer(TBuilder builder) + { + } } } \ No newline at end of file