Beispiel #1
0
 internal ContainerContext(IRegistrationRepository registrationRepository, IDelegateRepository delegateRepository,
                           IStashboxContainer container, IResolutionStrategy resolutionStrategy, IContainerConfigurator containerConfigurator,
                           IDecoratorRepository decoratorRepository)
 {
     this.ResolutionStrategy     = resolutionStrategy;
     this.RegistrationRepository = registrationRepository;
     this.DelegateRepository     = delegateRepository;
     this.Container             = container;
     this.Bag                   = new ConcurrentKeyValueStore <object, object>();
     this.ContainerConfigurator = containerConfigurator;
     this.DecoratorRepository   = decoratorRepository;
 }
Beispiel #2
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;
        }
Beispiel #3
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);
 }
Beispiel #4
0
 internal ContainerContext(IRegistrationRepository registrationRepository, IStashboxContainer container,
                           IResolutionStrategy resolutionStrategy, IContainerConfigurator containerConfigurator, IDecoratorRepository decoratorRepository)
 {
     this.ResolutionStrategy     = resolutionStrategy;
     this.RegistrationRepository = registrationRepository;
     this.Container             = container;
     this.ContainerConfigurator = containerConfigurator;
     this.DecoratorRepository   = decoratorRepository;
 }