Esempio n. 1
0
 internal ResolutionScope(IResolverSelector resolverSelector,
                          IExpressionBuilder expressionBuilder, IContainerContext containerContext)
     : this(resolverSelector, expressionBuilder, containerContext,
            new DelegateCache(), null)
 {
     this.RootScope = this;
 }
Esempio n. 2
0
 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;
 }
Esempio n. 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);
 }
Esempio n. 4
0
 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;
 }
Esempio n. 5
0
 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();
 }
Esempio n. 6
0
 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;
 }
Esempio n. 7
0
 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;
 }
Esempio n. 8
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);
 }
Esempio n. 9
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();
        }
Esempio n. 10
0
 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;
 }
Esempio n. 11
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;
        }
Esempio n. 12
0
 internal ResolutionStrategy(IResolverSelector resolverSelector)
 {
     this.resolverSelector = resolverSelector;
 }
Esempio n. 13
0
 public ActivationContext(IContainerContext containerContext, IResolverSelector resolverSelector, IResolutionScope rootScope)
 {
     this.containerContext = containerContext;
     this.resolverSelector = resolverSelector;
     this.rootScope        = rootScope;
 }
Esempio n. 14
0
 internal ResolutionStrategy(IResolverSelector resolverSelector)
 {
     this.resolverSelector = resolverSelector;
 }
Esempio n. 15
0
 public LazyResolver(IResolverSelector resolverSelector)
 {
     this.resolverSelector = resolverSelector;
 }