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); }
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); }
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); }