Exemple #1
0
        /// <summary>
        ///     Initializes a new instance of <see cref="Container" />.
        ///     <param name="registrationContainer">The registrations for this container.</param>
        /// </summary>
        internal Container(IRegistrationContainer registrationContainer)
        {
            _registrationContainer = registrationContainer;

            CreateValidPropertiesSelector();
            RegisterContainer();
        }
        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);
        }
        /// <summary>
        /// Initializes a new instance of <see cref="ContainerBuilder" />.
        /// </summary>
        public ContainerBuilder()
        {
            this._registrationContainer    = new RegistrationContainer();
            this._registrationCallbacks    = new List <Action>();
            this._defaultLifecycleFunction = () => new TransientLifecycle();

            this._bootStrappingContainer = this.Build();
        }
        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);
        }
Exemple #5
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 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);
        }
Exemple #7
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);
        }
        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);
        }
Exemple #9
0
        internal MisfitContainer(IRegistrationContainer registrationContainer)
        {
            this._registrationContainer = registrationContainer;

            var typeOfIContainer = typeof(IPluginContainer);

            if (this._registrationContainer.IsRegistered(typeOfIContainer))
            {
                this._registrationContainer.RemoveRegistration(typeOfIContainer);
            }

            var registrationItem = new RegistrationItem(typeOfIContainer)
            {
                Activator = new InstanceActivator <IPluginContainer>(this),
                Lifecycle = new TransientLifecycle()
            };

            this._registrationContainer.AddRegistration(registrationItem);
        }
Exemple #10
0
 internal ResolutionContext(IPluginContainer container, IRegistrationContainer registrations, ArgumentContainer arguments, ArgumentContainer runtimeArguments)
     : this(container, registrations)
 {
     this.Arguments        = arguments;
     this.RuntimeArguments = runtimeArguments;
 }
Exemple #11
0
 public MisfitContainerBuilder()
 {
     this._registrationContainer  = new RegistrationContainer();
     this._registrationCallbacks  = new List <Action>();
     this._bootStrappingContainer = this.Build();
 }
Exemple #12
0
 /// <summary>
 /// Initializes a new instance of <see cref="ArrayRegistrationSource" />.
 /// </summary>
 /// <param name="registrationContainer">The registration container.</param>
 public ArrayRegistrationSource(IRegistrationContainer registrationContainer)
 {
     this._registrationContainer = registrationContainer;
 }
 /// <summary>
 /// Initializes a new instance of <see cref="EnumerableRegistrationSource" />.
 /// </summary>
 /// <param name="registrationContainer">The registration container.</param>
 public EnumerableRegistrationSource(IRegistrationContainer registrationContainer)
 {
     _registrationContainer = registrationContainer;
 }
 /// <summary>
 /// Initializes a new instance of <see cref="OpenGenericRegistrationSource" />.
 /// </summary>
 /// <param name="registrationContainer">The registration container.</param>
 public OpenGenericRegistrationSource(IRegistrationContainer registrationContainer)
 {
     _registrationContainer = registrationContainer;
 }
Exemple #15
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)));
 }
 /// <summary>
 /// Initializes a new instance of <see cref="EnumerableRegistrationSource" />.
 /// </summary>
 /// <param name="registrationContainer">The registration container.</param>
 public EnumerableRegistrationSource(IRegistrationContainer registrationContainer)
 {
     this._registrationContainer = registrationContainer;
 }
        public override void Load(IOptionsResolver optionsResolver, IAssemblyTypesResolver assemblyTypesResolver, IRegistrationContainer container)
        {
            var types = assemblyTypesResolver.Resolve(Assembly.GetExecutingAssembly());

            container.BulkRegisterByMatchingEndName(types, "Service", RegistrationTarget.Interfaces);
        }
 /// <summary>
 /// Initializes a new instance of <see cref="ArrayRegistrationSource" />.
 /// </summary>
 /// <param name="registrationContainer">The registration container.</param>
 public ArrayRegistrationSource(IRegistrationContainer registrationContainer)
 {
     this._registrationContainer = registrationContainer;
 }
Exemple #19
0
 public abstract void Load(IOptionsResolver optionsResolver, IAssemblyTypesResolver assemblyTypesResolver, IRegistrationContainer container);
 /// <summary>
 /// Initializes a new instance of <see cref="ResolutionContext" />.
 /// <param name="container">The container.</param>
 /// <param name="registrations">The registrations.</param>
 /// <param name="arguments">The arguments.</param>
 /// <param name="runtimeArguments">The runtime arguments.</param>
 /// </summary>
 internal ResolutionContext(IContainer container, IRegistrationContainer registrations, ArgumentContainer arguments, ArgumentContainer runtimeArguments)
     : this(container, registrations)
 {
     this.Arguments = arguments;
     this.RuntimeArguments = runtimeArguments;
 }
 /// <summary>
 /// Initializes a new instance of <see cref="FactoryRegistrationSource" />.
 /// </summary>
 /// <param name="registrationContainer">The registration container.</param>
 public FactoryRegistrationSource(IRegistrationContainer registrationContainer)
 {
     this._registrationContainer = registrationContainer;
 }
Exemple #22
0
 internal ResolutionContext(IPluginContainer container, IRegistrationContainer registrations)
     : this()
 {
     this.Container             = container;
     this.RegistrationContainer = registrations;
 }
 /// <summary>
 /// Initializes a new instance of <see cref="OpenGenericRegistrationSource" />.
 /// </summary>
 /// <param name="registrationContainer">The registration container.</param>
 public OpenGenericRegistrationSource(IRegistrationContainer registrationContainer)
 {
     this._registrationContainer = registrationContainer;
 }
 /// <summary>
 /// Initializes a new instance of <see cref="FactoryRegistrationSource" />.
 /// </summary>
 /// <param name="registrationContainer">The registration container.</param>
 public FactoryRegistrationSource(IRegistrationContainer registrationContainer)
 {
     this._registrationContainer = registrationContainer;
 }
 /// <summary>
 /// Initializes a new instance of <see cref="ResolutionContext" />.
 /// <param name="container">The container.</param>
 /// <param name="registrations">The registrations.</param>
 /// </summary>
 internal ResolutionContext(IContainer container, IRegistrationContainer registrations)
     : this()
 {
     this.Container = container;
     this.RegistrationContainer = registrations;
 }