using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using System; namespace Vit.Extensions { public static partial class IServiceCollectionExtensions_ConfigureApp { 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); }; } } /// /// 添加app配置的同时不停用其他app配置。(调用IWebHostBuilder.Configure函数会停用掉之前的配置,仅最后一次生效) /// /// /// /// /// public static IServiceCollection ConfigureApp(this IServiceCollection services, Action beforeConfig = null, Action afterConfig = null) { return services?.AddTransient(m => { return new AutoRequestServicesStartupFilter { beforeConfig = beforeConfig, afterConfig = afterConfig }; }); } } }