示例#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);
        }
示例#2
0
        public override void Load(IOptionsResolver optionsResolver, IAssemblyTypesResolver assemblyTypesResolver,
                                  IRegistrationContainer container)
        {
            var types = assemblyTypesResolver.Resolve(Assembly.GetExecutingAssembly());

            container.BulkRegisterByMatchingEndName(types, "Service", RegistrationTarget.Interfaces);
            container.BulkRegisterByMatchingType <IIdentityClaimRefiner>(types, RegistrationTarget.Interfaces);
            //container.Register<IClaimsTransformation, ClaimsRefinementTransformation>(RegistrationLifeTime.Transient);
        }
示例#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);
        }
示例#4
0
        public RolePoliciesService(IOptionsResolver <AuthenticationAndAuthorizationOptions> authorizationResolver)
        {
            if (authorizationResolver == null)
            {
                throw new ArgumentNullException(nameof(authorizationResolver));
            }

            var options = authorizationResolver.Resolve();

            _lazyDictionary = new Lazy <IDictionary <string, ISet <string> > >(BuildDictionary(options?.RolePolicies));
        }
示例#5
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);
        }
示例#6
0
 protected void InvalidateCache(IOptionsResolver state)
 {
     try
     {
         _locker.EnterWriteLock();
         _cache.Clear();
     }
     finally
     {
         _locker.ExitWriteLock();
     }
 }
示例#7
0
        public override void Load(IOptionsResolver optionsResolver, IAssemblyTypesResolver assemblyTypesResolver,
                                  IRegistrationContainer container)
        {
            var types = assemblyTypesResolver.Resolve(Assembly.GetExecutingAssembly());

            //container.BulkRegisterByMatchingType(typeof(IRepository<>), types, RegistrationTarget.Interfaces);
            container.BulkRegisterByMatchingEndName(types, "Service", RegistrationTarget.Interfaces);
            //container.BulkRegisterByMatchingType(typeof(IConfigurationRuleSet), types, RegistrationTarget.Interfaces);
            container.BulkRegisterByMatchingType <EntityBaseConfiguration>(types, RegistrationTarget.AbstractBases);
            container.RegisterDbContext(connectionString => new DbContextOptionsBuilder <SampleDbContext>().UseInMemoryDatabase(connectionString)
                                        .Options);
        }
示例#8
0
 public OptionsResolver(IOptionsResolver resolver)
 {
     _resolver = resolver;
 }
示例#9
0
        public override void Load(IOptionsResolver optionsResolver, IAssemblyTypesResolver assemblyTypesResolver, IRegistrationContainer container)
        {
            var types = assemblyTypesResolver.Resolve(Assembly.GetExecutingAssembly());

            container.BulkRegisterByMatchingEndName(types, "Service", RegistrationTarget.Interfaces);
        }
示例#10
0
 public abstract void Load(IOptionsResolver optionsResolver, IAssemblyTypesResolver assemblyTypesResolver, IRegistrationContainer container);
示例#11
0
 public void Initialize(IOptionsResolver optionsResolver, IAssemblyTypesResolver assemblyTypesResolver, IRegistrationContainer container)
 {
     Load(optionsResolver ?? throw new ArgumentNullException(nameof(optionsResolver)), assemblyTypesResolver ?? throw new ArgumentNullException(nameof(assemblyTypesResolver)), container ?? throw new ArgumentNullException(nameof(container)));
 }