Example #1
0
        public IModuleLoader Initialize(T scope, IOptionsResolver optionsResolver, IConnectionStringResolver connectionStringResolver)
        {
            if (_initialized)
            {
                return(this);
            }

            lock (_locker)
            {
                if (_initialized)
                {
                    return(this);
                }

                _genericContainer = AdaptContainer(scope);

                _genericContainer.Register <IResolutionContainer, IResolutionContainer>(AdaptResolver(scope));
                _genericContainer.Register <IConnectionStringResolver, IConnectionStringResolver>(connectionStringResolver);
                _genericContainer.Register <IOptionsResolver, IOptionsResolver>(optionsResolver);
                _genericContainer.Register(typeof(IOptionsResolver <>), typeof(OptionsResolver <>), RegistrationLifeTime.Singleton);
                //_genericContainer.Register(typeof(OptionsResolver<>), RegistrationTarget.Interfaces, RegistrationLifeTime.Singleton);
                _optionsResolver = optionsResolver;
                _initialized     = true;
            }

            return(this);
        }
Example #2
0
        public override void Load(IOptionsResolver optionsResolver, IAssemblyTypesResolver assemblyTypesResolver,
                                  IRegistrationContainer container)
        {
            var types = assemblyTypesResolver.Resolve();

            container.BulkRegisterByMatchingEndName(types, "Service", RegistrationTarget.Interfaces);
            //container.BulkRegisterByMatchingType(typeof(IConfigurationRuleSet), types, RegistrationTarget.Interfaces);
            container.Register <IConfigurationsFactory, ConfigurationsFactory>(RegistrationLifeTime.Singleton);
            container.Register <IDbContextResolver, DbContextResolver>(RegistrationLifeTime.Scoped);
            container.Register <IDbContextFactory, DbContextFactory>(RegistrationLifeTime.Scoped);
            container.Register(typeof(IRepository <>), typeof(DbRepository <>), RegistrationLifeTime.Scoped);
        }
Example #3
0
        public override void Load(IOptionsResolver optionsResolver, IAssemblyTypesResolver assemblyTypesResolver,
                                  IRegistrationContainer container)
        {
            var types = assemblyTypesResolver.Resolve(Assembly.GetExecutingAssembly());

            container.BulkRegisterByMatchingEndName(types, "Service", RegistrationTarget.Interfaces);
            container.Register <IHttpContextAccessor, HttpContextAccessor>(RegistrationLifeTime.Singleton);
            container.RegisterFactory(c => (IUserContext) new UserContext(() => c.Resolve <IHttpContextAccessor>().HttpContext, c.Resolve <IRolePoliciesService>(), c.Resolve <IDateService>())
                                      , RegistrationLifeTime.Singleton);
        }
        public static IRegistrationContainer RegisterDbContext <TDbContext>(this IRegistrationContainer container, Func <string, DbContextOptions <TDbContext> > optionsBuilder) where TDbContext : DbContext
        {
            container.RegisterFactory(resolver =>
            {
                var connectionStringResolver = resolver.Resolve <IConnectionStringResolver>();

                var connectionString = connectionStringResolver.Resolve <TDbContext>();

                return(optionsBuilder(connectionString));
            }, RegistrationLifeTime.Scoped);

            container.Register <TDbContext>(RegistrationTarget.Self | RegistrationTarget.AbstractBases, RegistrationLifeTime.Scoped);

            return(container);
        }