private UnityDependencyContainer(string scopeName, DependencyDefinitionCollection definitions, IUnityContainer unityContainer) { Ensure.NotNull(unityContainer, "unityContainer"); this.unityContainer = unityContainer; this.definitions = definitions; unityContainer.RegisterInstance <IDependencyProvider>(this, new ExternallyControlledLifetimeManager()); unityContainer.RegisterInstance <IDependencyContainer>(this, new ExternallyControlledLifetimeManager()); }
private bool CanBeInitialized(ProfilingTypeFacade item, List <ProfilingTypeFacade> sortedItems) { DependencyDefinitionCollection dependencies = item.Definition.Dependencies; //Item doesn't have dependencies if (dependencies.Count == 0) { return(true); } foreach (DependencyDefinition dependency in dependencies) { //Some of the dependencies are still not in the list of sorted items - we cannot initialize current ProfilingType if (!ContainsItem(sortedItems, dependency)) { return(false); } } return(true); }
private SimpleDependencyContainer(string scopeName, SimpleDependencyContainer parentContainer) { Ensure.NotNullOrEmpty(scopeName, "scopeName"); this.scopeName = scopeName; this.parentContainer = parentContainer; InstanceStorage instances = new InstanceStorage(); if (parentContainer == null) { this.definitions = new DependencyDefinitionCollection(scopeName, instances); } else { this.definitions = new DependencyDefinitionCollection(scopeName, instances, parentContainer.definitions); } this.resolver = new InstanceResolver(definitions, instances); definitions.Add(typeof(IDependencyContainer), DependencyLifetime.NameScope(scopeName), this); definitions.Add(typeof(IDependencyProvider), DependencyLifetime.NameScope(scopeName), this); }