internal ResolutionScope(IResolverSelector resolverSelector, IExpressionBuilder expressionBuilder, IContainerContext containerContext) : this(resolverSelector, expressionBuilder, containerContext, new DelegateCache(), null) { this.RootScope = this; }
private ResolutionScope(IResolverSelector resolverSelector, IExpressionBuilder expressionBuilder, IContainerContext containerContext, IResolutionScope rootScope, IResolutionScope parent, DelegateCache delegateCache, object name = null) : this(resolverSelector, expressionBuilder, containerContext, delegateCache, name) { this.RootScope = rootScope; this.ParentScope = parent; }
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); }
public ResolutionScope(IResolverSelector resolverSelector, IServiceRegistrator serviceRegistrator, IExpressionBuilder expressionBuilder, IContainerContext containerContext, IResolutionScope rootScope, IResolutionScope parent, AvlTreeKeyValue <object, Func <IResolutionScope, object> >[] serviceDelegateCache, AvlTreeKeyValue <object, Func <IResolutionScope, Delegate> >[] factoryDelegates, object name = null) : this(resolverSelector, serviceRegistrator, expressionBuilder, containerContext, serviceDelegateCache, factoryDelegates, name) { this.RootScope = rootScope; this.ParentScope = parent; }
public ResolutionScope(IResolverSelector resolverSelector, IServiceRegistrator serviceRegistrator, IExpressionBuilder expressionBuilder, IContainerContext containerContext, object name = null) : this(resolverSelector, serviceRegistrator, expressionBuilder, containerContext, new AvlTreeKeyValue <object, Func <IResolutionScope, object> > [Constants.HashMapLength], new AvlTreeKeyValue <object, Func <IResolutionScope, Delegate> > [Constants.HashMapLength], name) { this.RootScope = this; this.InvalidateDelegateCache(); }
private ResolutionScope(IResolverSelector resolverSelector, IExpressionBuilder expressionBuilder, IContainerContext containerContext, DelegateCache delegateCache, object name) { this.resolverSelector = resolverSelector; this.expressionBuilder = expressionBuilder; this.containerContext = containerContext; this.Name = name; this.delegateCache = delegateCache; }
private ResolutionScope(IResolverSelector resolverSelector, IExpressionBuilder expressionBuilder, IContainerContext containerContext, DelegateCache delegateCache, object name) { this.rootItem = DisposableItem.Empty; this.rootFinalizableItem = FinalizableItem.Empty; this.scopedItems = AvlTree <object> .Empty; this.scopedInstances = AvlTreeKeyValue <Type, object> .Empty; this.resolverSelector = resolverSelector; this.expressionBuilder = expressionBuilder; this.containerContext = containerContext; this.Name = name; this.delegateCache = delegateCache; }
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); }
/// <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(); }
private ResolutionScope(IResolverSelector resolverSelector, IServiceRegistrator serviceRegistrator, IExpressionBuilder expressionBuilder, IContainerContext containerContext, AvlTreeKeyValue <object, Func <IResolutionScope, object> >[] serviceDelegateCache, AvlTreeKeyValue <object, Func <IResolutionScope, Delegate> >[] factoryDelegates, object name) { this.disposed = new AtomicBool(); this.rootItem = DisposableItem.Empty; this.rootFinalizableItem = FinalizableItem.Empty; this.scopedItems = AvlTreeKeyValue <object, object> .Empty; this.scopedInstances = AvlTreeKeyValue <Type, object> .Empty; this.resolverSelector = resolverSelector; this.serviceRegistrator = serviceRegistrator; this.expressionBuilder = expressionBuilder; this.containerContext = containerContext; this.Name = name; this.serviceDelegates = serviceDelegateCache; this.factoryDelegates = factoryDelegates; this.indexBound = this.serviceDelegates.Length - 1; }
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 ResolutionStrategy(IResolverSelector resolverSelector) { this.resolverSelector = resolverSelector; }
public ActivationContext(IContainerContext containerContext, IResolverSelector resolverSelector, IResolutionScope rootScope) { this.containerContext = containerContext; this.resolverSelector = resolverSelector; this.rootScope = rootScope; }
public LazyResolver(IResolverSelector resolverSelector) { this.resolverSelector = resolverSelector; }