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);
 }
예제 #2
0
 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);
 }
예제 #3
0
 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);
 }
예제 #4
0
 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);
 }
예제 #5
0
        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);
                });
            }
        };