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