当前位置: 首页>>代码示例>>C#>>正文


C# Container.RegisterConditional方法代码示例

本文整理汇总了C#中SimpleInjector.Container.RegisterConditional方法的典型用法代码示例。如果您正苦于以下问题:C# Container.RegisterConditional方法的具体用法?C# Container.RegisterConditional怎么用?C# Container.RegisterConditional使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SimpleInjector.Container的用法示例。


在下文中一共展示了Container.RegisterConditional方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RegisterServices

        public void RegisterServices(Container container, CompositionRootSettings settings)
        {
            if (settings.FluentValidationAssemblies == null) return;

            ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure;

            container.RegisterSingleton<IValidatorFactory, SimpleInjectorValidatorFactory>();
            container.RegisterSingleton<IProcessValidation, ValidationProcessor>();

            container.Register(typeof(IValidator<>), settings.FluentValidationAssemblies);

            // Add unregistered type resolution for objects missing an IValidator<T>
            container.RegisterConditional(typeof(IValidator<>), typeof(ValidateNothingDecorator<>), Lifestyle.Singleton, context => !context.Handled);
        }
开发者ID:hartmanns,项目名称:ScaffoldR,代码行数:14,代码来源:ValidationPackage.cs

示例2: ConfigureGenerics

        public static void ConfigureGenerics(Container container)
        {
            container.Register(typeof(DataProvider<>),
                new[] { typeof(DataProvider<>).Assembly }, Lifestyle.Singleton);
            container.Register(typeof(CommandHandler<,>), new[] { typeof(CommandHandler<,>).Assembly });
            container.Register(typeof(CommandHandler<>), new[] { typeof(CommandHandler<>).Assembly });

            var commandHandlerTypes = container.GetTypesToRegister(typeof(Command<>),
                new[] { typeof(Command<>).Assembly },
                    new TypesToRegisterOptions { IncludeGenericTypeDefinitions = true} );

            foreach (Type type in commandHandlerTypes.Where(t => t.IsGenericTypeDefinition))
            {
                container.RegisterConditional(typeof(Command<>), type, c => !c.Handled);
            }
        }
开发者ID:uzigula,项目名称:DesignPatterns,代码行数:16,代码来源:SimpleInjectorConfiguration.cs

示例3: GetInitializeContainer

        public static Container GetInitializeContainer(
                  IAppBuilder app)
        {
            var container = new Container();
            container.Options.PropertySelectionBehavior = new ImportPropertySelectionBehavior(); // Enable ImportAttribute for property injection
 
            container.RegisterSingleton(app);

            container.Register<IFederationService, FederationService>(Lifestyle.Singleton);
            container.Register<IAppService, AppService>(Lifestyle.Transient);
 
            container.RegisterConditional(typeof(IRepository<>), typeof(Repository<>), c => !c.Handled);

            container.Register<ICheckPasswordService<AppMember>, LegacyCheckPasswordService<AppMember>>(Lifestyle.Transient);
 
            container.RegisterPerWebRequest<IDragonUserStore<AppMember>>(() =>
            {
                var dragonUserStores = new List<IDragonUserStore<AppMember>>
                {
                    new UserStore<AppMember>(new Repository<AppMember>(), null, new Repository<IdentityUserLogin>(),
                        new Repository<IdentityUserService>(), new Repository<IdentityUserApp>())
                };
                if (WebConfigurationManager.ConnectionStrings[RedisConnectionStringName] != null)
                {
                    var connectionMultiplexer = ConnectionMultiplexer.Connect(WebConfigurationManager.ConnectionStrings[RedisConnectionStringName].ConnectionString);
                    connectionMultiplexer.PreserveAsyncOrder = false;
                    dragonUserStores.Insert(0, new Identity.Redis.UserStore<AppMember>(new RedisUserStore<Identity.Redis.IdentityUser>(connectionMultiplexer), connectionMultiplexer));
                }
                var userStore = new ChainedIdentity.Stores.UserStore<AppMember>(dragonUserStores);
                Startup.OpenIdMigrationWebrequestHandler = new OpenIdMigrationWebRequestHandler(userStore);
                return userStore;
            });

            container.Register<IUserService, UserService>(Lifestyle.Transient);

            container.RegisterPerWebRequest(() => ApplicationUserManager.Create(container, Startup.DataProtectionProvider));

            container.RegisterPerWebRequest(() => container.GetOwinContext().Authentication);

            container.RegisterMvcControllers(
                    Assembly.GetExecutingAssembly());
            
            return container;
        }
开发者ID:aduggleby,项目名称:dragon,代码行数:44,代码来源:SimpleInjectorInitializer.cs

示例4: GetInitializeContainer

        public static Container GetInitializeContainer(
                  IAppBuilder app)
        {
            var container = new Container();
 
            container.RegisterSingleton(app);
 
            container.RegisterConditional(typeof(IRepository<>), typeof(Repository<>), c => !c.Handled);
 
            container.RegisterPerWebRequest<IDragonUserStore<AppMember>>(() =>
                new Dragon.SecurityServer.ChainedIdentity.Stores.UserStore<AppMember>(new List<IDragonUserStore<AppMember>>{
                    new UserStore<AppMember>(new Repository<AppMember>(), new Repository<IdentityUserClaim>(), new Repository<IdentityUserLogin>(), null, null)
                }));
 
            container.RegisterPerWebRequest(() => ApplicationUserManager.Create(container));

            container.RegisterPerWebRequest(() => container.GetOwinContext().Authentication);

            container.RegisterMvcControllers(
                    Assembly.GetExecutingAssembly());
            
            return container;
        }
开发者ID:aduggleby,项目名称:dragon,代码行数:23,代码来源:SimpleInjectorInitializer.cs

示例5: RegisterDependencies

        /// <summary>
        /// Registers all dependencies with the application's container.
        /// </summary>
        /// <param name="container"></param>
        private static void RegisterDependencies(Container container)
        {
            container.Register<IAmikiriConfigurationProvider, AmikiriConfigurationProvider>(Lifestyle.Scoped);
            container.RegisterConditional(
                typeof(ILogger),
                context => typeof(LoggerWrapper<>).MakeGenericType(context.Consumer.ImplementationType),
                Lifestyle.Singleton,
                _ => true);

            ConfigureDelegatingHandlers(container);
            ConfigureAutoMapper(container);
            ConfigureRavenDb(container);
            ConfigureMediatr(container);
            ConfigureFluentValidator(container);
            ConfigureCorsProviders(container);
            ConfigureAspNetIdentity(container);
        }
开发者ID:jaredrussell,项目名称:Amikiri,代码行数:21,代码来源:SimpleInjectorConfig.cs


注:本文中的SimpleInjector.Container.RegisterConditional方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。