/// <summary> /// Add in Global.Application_Start (Static Mode) /// </summary> /// <param name="app"></param> /// <returns></returns> public static ModularizationModuleTable AddModularization(this HttpApplication app) { moduleTable = new(); middleware = new(moduleTable); return(moduleTable); }
/// <summary> /// /// </summary> /// <param name="services"></param> /// <returns></returns> public static ModularizationModuleTable AddModularization(this IServiceCollection services) { var moduleTable = new ModularizationModuleTable(services); services.AddSingleton(moduleTable); return(moduleTable); }
/// <summary> /// Add in Global.Application_Start (Use DI) /// </summary> /// <param name="app"></param> /// <param name="registerServiceType"></param> /// <param name="registerServiceImplementationFactory"></param> /// <returns></returns> public static ModularizationModuleTable AddModularization(this HttpApplication app, Action <Type, string> registerServiceType, Action <Type, Func <IServiceProvider, object>, string> registerServiceImplementationFactory) { var moduleTable = new ModularizationModuleTable(registerServiceType, registerServiceImplementationFactory); registerServiceImplementationFactory.Invoke(typeof(ModularizationModuleTable), serviceProvider => moduleTable, "Singleton"); registerServiceImplementationFactory.Invoke(typeof(ModularizationMiddleware), serviceProvider => new ModularizationMiddleware(serviceProvider), "Singleton"); return(moduleTable); }