protected virtual void Configure(IModuleContext <TModule> moduleContext, IApplicationBuilder app) { Filters.BuildFilterPipeline( BootstrapContext.Advanced.FrameworkServices.GetServices <IWebModuleConfigureFilter>(), (ctx, appBuilder) => { ModuleMethodInvoker.CallOptionalMethod(BootstrapContext.ToModuleContext(app.ApplicationServices), "Configure", appBuilder); })(moduleContext, app); }
private static void ConfigureContainer(IModuleContext moduleContext, Container container) { Filters.BuildFilterPipeline( moduleContext.Advanced.FrameworkServices.GetServices <IConfigureContainerFilter>() .Append(GenericModuleContextFilterAdapter <Container> .Create(typeof(IConfigureContainerFilter <>))), (ctx, c) => { ModuleMethodInvoker.CallOptionalMethod(ctx, "ConfigureContainer", container); })(moduleContext, container); }
private static void UseSimpleInjector(IModuleContext moduleContext, SimpleInjectorUseOptions options) { Filters.BuildFilterPipeline( moduleContext.Advanced.FrameworkServices.GetServices <IUseSimpleInjectorFilter>() .Append(GenericModuleContextFilterAdapter <SimpleInjectorUseOptions> .Create(typeof(IUseSimpleInjectorFilter <>))), (ctx, o) => { ModuleMethodInvoker.CallOptionalMethod(ctx, "UseSimpleInjector", o); })(moduleContext, options); }
protected virtual void ConfigureServices(HostBuilderContext hostBuilderContext, IServiceCollection services, IServiceProvider serviceProvider) { Filters.BuildFilterPipeline( BootstrapContext.Advanced.FrameworkServices.GetServices <IModuleServicesFilter>() .Append(GenericModuleHostBuilderContextAdapter <IServiceCollection> .Create(typeof(IModuleServicesFilter <>))) , (ctx, s) => { ModuleMethodInvoker.CallOptionalMethod(BootstrapContext.ToModuleContext(serviceProvider), "ConfigureServices", serviceProvider, s); }) (BootstrapContext.ToModuleHostBuilderContext(hostBuilderContext), services); }
public Action <IModulesHostBuilderContext, IServiceCollection> Invoke(Action <IModulesHostBuilderContext, IServiceCollection> next) => (context, services) => { next(context, services); if (context.Advanced.RootContext is ISimpleInjectorModuleContext containerContext) { services.AddSimpleInjector(containerContext.Container, options => { Filters.BuildFilterPipeline( context.Advanced.FrameworkServices.GetServices <IAddSimpleInjectorFilter>() .Append(GenericModuleHostBuilderContextAdapter <SimpleInjectorAddOptions> .Create(typeof(IAddSimpleInjectorFilter <>))), (ctx, o) => { ModuleMethodInvoker.CallOptionalMethod(containerContext, "AddSimpleInjector", o); })(context, options); }); } };