Esempio n. 1
0
 public DependencyScope(IOuterDependencyScopeGetter outerScopeGetter, IDependencyExporter exporter, bool ownsExporter = default, bool prohibitNewInstanceRequest = default, object owner = default)
 {
     outerScopeGetter.EnsureNotNull(nameof(outerScopeGetter));
     //
     _outerScopeGetter           = outerScopeGetter.ToValueHolder(ownsValue: false);
     _prohibitNewInstanceRequest = prohibitNewInstanceRequest;
     P_CtorInitializer(exporter: exporter, ownsDependencyExporter: ownsExporter, owner: owner);
 }
Esempio n. 2
0
 public HierarchicalContext(Func <Type, IBootstrapTask> activator, IBootstrapConstraintProvider constraintProvider, IDependencyDescriptorProvider descriptorProvider, IDependencyExporter dependencyExporter)
 {
     Ensure.NotNull(activator, "activator");
     Ensure.NotNull(constraintProvider, "constraintProvider");
     Ensure.NotNull(descriptorProvider, "dependencyProvider");
     Ensure.NotNull(dependencyExporter, "dependencyExporter");
     Activator          = activator;
     ConstraintProvider = constraintProvider;
     DescriptorProvider = descriptorProvider;
     DependencyExporter = dependencyExporter;
 }
Esempio n. 3
0
 void P_CtorInitializer(IDependencyExporter exporter, bool ownsDependencyExporter = default, IServiceProvider outerServiceProvider = default, object owner = default)
 {
     exporter.EnsureNotNull(nameof(exporter));
     //
     _exporter = exporter.ToValueHolder(ownsDependencyExporter);
     _owner    = owner;
     //
     _resolutionModelLazy =
         new DisposableLazy <IDependencyResolutionModel <DependencyScope> >(
             factory: () => new DependencyResolutionModel <DependencyScope>(scope: this, handlerChainSource: ReadDA(ref _exporter, considerDisposeRequest: true).Value.ExportDependencies()),
             ownsValue: true);
     //
     _newDependencyInstancesDisposeRegistry = new DisposeRegistry();
     //
     _runningResolutionsSpinLock   = new PrimitiveSpinLock();
     _runningResolutionsUniqueness = new HashSet <IDependencyResolutionContext>(comparer: ReferenceEqualityComparer <IDependencyResolutionContext> .Instance);
     _runningResolutionsSequence   = new List <IDependencyResolutionContext>();
     //
     _serviceProviderApi = outerServiceProvider ?? new P_ServiceProviderApi(scope: this);
 }
Esempio n. 4
0
 protected override void BuildDependencyScope(IOuterDependencyScopeGetter outerScopeGetter, IDependencyExporter exporter, bool ownsExporter, out IDependencyScope scope)
 => scope = new DependencyScope(outerScopeGetter: outerScopeGetter, exporter: exporter, ownsExporter: ownsExporter, prohibitNewInstanceRequest: false, owner: ReadDA(location: ref _efContext));
Esempio n. 5
0
 protected override void BuildDependencyScope(IOuterDependencyScopeGetter outerScopeGetter, IDependencyExporter exporter, bool ownsExporter, out IDependencyScope scope)
 => scope = new DependencyScope(outerScopeGetter: outerScopeGetter, exporter: exporter, ownsExporter: ownsExporter, owner: ReadDA(ref _metadata));
Esempio n. 6
0
 private HierarchicalBootstrapper CreateBootstrapper(IDependencyExporter dependencyExporter)
 {
     return(new HierarchicalBootstrapper(new HierarchicalContext(activator, constraintProvider, descriptorProvider, dependencyExporter)));
 }
Esempio n. 7
0
 HierarchicalBootstrapper IHierarchicalBuilderExporter.WithExporter(IDependencyExporter dependencyExporter)
 {
     Ensure.NotNull(dependencyExporter, "export");
     return(CreateBootstrapper(dependencyExporter));
 }
Esempio n. 8
0
 public DependencyScope(IDependencyScope outerScope, IDependencyExporter exporter, bool ownsExporter = default, bool prohibitNewInstanceRequest = default, object owner = default)
 {
     _outerScopeGetter           = new DefaultOuterDependencyScopeGetter(outerScope: outerScope).ToValueHolder(ownsValue: true);
     _prohibitNewInstanceRequest = prohibitNewInstanceRequest;
     P_CtorInitializer(exporter: exporter, ownsDependencyExporter: ownsExporter, owner: owner);
 }
Esempio n. 9
0
 protected virtual void BuildDependencyScope(IOuterDependencyScopeGetter outerScopeGetter, IDependencyExporter exporter, bool ownsExporter, out IDependencyScope scope)
 => scope = new DependencyScope(outerScopeGetter: outerScopeGetter, exporter: exporter, ownsExporter: ownsExporter, owner: this);