Exemplo n.º 1
0
 internal StashboxContainer(IStashboxContainer parentContainer, IContainerExtensionManager containerExtensionManager,
                            IResolverSelector resolverSelector, IContainerConfigurator containerConfigurator, IDecoratorRepository decoratorRepository)
     : this(containerExtensionManager, resolverSelector, containerConfigurator, decoratorRepository)
 {
     this.ParentContainer = parentContainer;
     this.containerExtensionManager.ReinitalizeExtensions(this.ContainerContext);
 }
Exemplo n.º 2
0
 internal ServiceRegistrator(IContainerContext containerContext, IContainerExtensionManager containerExtensionManager,
                             IObjectBuilderSelector objectBuilderSelector)
 {
     this.containerContext          = containerContext;
     this.containerExtensionManager = containerExtensionManager;
     this.objectBuilderSelector     = objectBuilderSelector;
 }
Exemplo n.º 3
0
 public BuildUpObjectBuilder(object instance, IContainerContext containerContext, IContainerExtensionManager containerExtensionManager, IObjectExtender objectExtender)
 {
     this.instance = instance;
     this.instanceType = instance.GetType();
     this.containerExtensionManager = containerExtensionManager;
     this.objectExtender = objectExtender;
     this.containerContext = containerContext;
 }
Exemplo n.º 4
0
        public DefaultObjectBuilder(IContainerContext containerContext, IMetaInfoProvider metaInfoProvider,
            IContainerExtensionManager containerExtensionManager, string registrationName,
            InjectionParameter[] injectionParameters = null)
        {
            if (injectionParameters != null)
                this.injectionParameters = injectionParameters;

            this.instanceType = metaInfoProvider.TypeTo;
            this.containerExtensionManager = containerExtensionManager;
            this.registrationName = registrationName;
            this.metaInfoProvider = metaInfoProvider;
            this.containerContext = containerContext;
        }
Exemplo n.º 5
0
 internal StashboxContainer(IStashboxContainer parentContainer, IContainerExtensionManager containerExtensionManager,
                            IResolverSelector resolverSelector)
 {
     this.disposed                  = new AtomicBool();
     this.ParentContainer           = parentContainer;
     this.containerExtensionManager = containerExtensionManager;
     this.resolverSelector          = resolverSelector;
     this.registrationRepository    = new RegistrationRepository();
     this.ContainerContext          = new ContainerContext(this.registrationRepository, new DelegateRepository(), this,
                                                           new ResolutionStrategy(this.resolverSelector), parentContainer.ContainerContext.ContainerConfigurator,
                                                           parentContainer.ContainerContext.DecoratorRepository);
     this.activationContext = new Resolution.ActivationContext(this.ContainerContext, this.resolverSelector, this);
     this.containerExtensionManager.ReinitalizeExtensions(this.ContainerContext);
     this.expressionBuilder     = new ExpressionBuilder(this.ContainerContext, this.containerExtensionManager);
     this.objectBuilderSelector = new ObjectBuilderSelector(this.ContainerContext, this.expressionBuilder);
     this.ServiceRegistrator    = new ServiceRegistrator(this.ContainerContext, this.containerExtensionManager, this.objectBuilderSelector);
 }
Exemplo n.º 6
0
        /// <summary>
        /// Constructs a <see cref="StashboxContainer"/>
        /// </summary>
        public StashboxContainer(Action <IContainerConfigurator> config = null)
        {
            this.disposed = new AtomicBool();
            this.containerExtensionManager = new BuildExtensionManager();
            this.resolverSelector          = new ResolverSelector();

            var configurator = new ContainerConfigurator();

            config?.Invoke(configurator);

            this.registrationRepository = new RegistrationRepository();
            this.ContainerContext       = new ContainerContext(this.registrationRepository, new DelegateRepository(), this,
                                                               new ResolutionStrategy(this.resolverSelector), configurator, new DecoratorRepository());
            this.activationContext     = new Resolution.ActivationContext(this.ContainerContext, this.resolverSelector, this);
            this.expressionBuilder     = new ExpressionBuilder(this.ContainerContext, this.containerExtensionManager);
            this.objectBuilderSelector = new ObjectBuilderSelector(this.ContainerContext, this.expressionBuilder);
            this.ServiceRegistrator    = new ServiceRegistrator(this.ContainerContext, this.containerExtensionManager, this.objectBuilderSelector);
            this.RegisterResolvers();
        }
Exemplo n.º 7
0
        internal StashboxContainer(IContainerExtensionManager containerExtensionManager, IResolverSelector resolverSelector,
                                   IContainerConfigurator containerConfigurator, IDecoratorRepository decoratorRepository, Action <IContainerConfigurator> config = null)
        {
            this.containerExtensionManager = containerExtensionManager;
            this.resolverSelector          = resolverSelector;

            config?.Invoke(containerConfigurator);

            this.ContainerContext = new ContainerContext(this.registrationRepository, this,
                                                         new ResolutionStrategy(this.resolverSelector), containerConfigurator, decoratorRepository);

            var expressionBuilder = new ExpressionBuilder(this.containerExtensionManager, new ConstructorSelector());

            this.serviceRegistrator    = new ServiceRegistrator(this.ContainerContext, this.containerExtensionManager);
            this.objectBuilderSelector = new ObjectBuilderSelector(expressionBuilder, this.serviceRegistrator);
            this.registrationBuilder   = new RegistrationBuilder(this.ContainerContext, this.objectBuilderSelector);

            this.RootScope    = new ResolutionScope(this.resolverSelector, expressionBuilder, this.ContainerContext);
            this.rootResolver = (IDependencyResolver)this.RootScope;
        }
Exemplo n.º 8
0
 public ExpressionBuilder(IContainerExtensionManager containerExtensionManager)
 {
     this.containerExtensionManager = containerExtensionManager;
 }
Exemplo n.º 9
0
 private FactoryObjectBuilder(IContainerContext containerContext, IContainerExtensionManager containerExtensionManager, IObjectExtender objectExtender)
 {
     this.containerExtensionManager = containerExtensionManager;
     this.objectExtender = objectExtender;
     this.containerContext = containerContext;
 }
Exemplo n.º 10
0
 public FactoryObjectBuilder(Func<object, object, object, object> threeParamsFactory, IContainerContext containerContext, IContainerExtensionManager containerExtensionManager, IObjectExtender objectExtender)
     : this(containerContext, containerExtensionManager, objectExtender)
 {
     this.threeParamsFactory = threeParamsFactory;
 }
Exemplo n.º 11
0
 public FactoryObjectBuilder(Func<object> factory, IContainerContext containerContext, IContainerExtensionManager containerExtensionManager, IObjectExtender objectExtender)
     : this(containerContext, containerExtensionManager, objectExtender)
 {
     this.singleFactory = factory;
 }
Exemplo n.º 12
0
 internal ServiceRegistrator(IContainerContext containerContext, IContainerExtensionManager containerExtensionManager)
 {
     this.containerContext          = containerContext;
     this.containerExtensionManager = containerExtensionManager;
 }
 public ExpressionBuilder(IContainerExtensionManager containerExtensionManager, IConstructorSelector constructorSelector)
 {
     this.containerExtensionManager = containerExtensionManager;
     this.constructorSelector       = constructorSelector;
 }