using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using System; namespace Vit.Extensions { public static partial class IWebHostBuilderExtensions_AddConfigure { public class AutoRequestServicesStartupFilter : IStartupFilter { public Action beforeConfig; public Action afterConfig; public Action Configure(Action next) { return builder => { beforeConfig?.Invoke(builder); next(builder); afterConfig?.Invoke(builder); }; } } /// /// /// /// /// /// /// public static IWebHostBuilder AddConfigure(this IWebHostBuilder builder, Action beforeConfig=null, Action afterConfig=null) { return builder.ConfigureServices(services=> { services.AddTransient(m=> { return new AutoRequestServicesStartupFilter { beforeConfig = beforeConfig , afterConfig = afterConfig }; }); }); } } }