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); }
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; }
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); }
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));
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));
private HierarchicalBootstrapper CreateBootstrapper(IDependencyExporter dependencyExporter) { return(new HierarchicalBootstrapper(new HierarchicalContext(activator, constraintProvider, descriptorProvider, dependencyExporter))); }
HierarchicalBootstrapper IHierarchicalBuilderExporter.WithExporter(IDependencyExporter dependencyExporter) { Ensure.NotNull(dependencyExporter, "export"); return(CreateBootstrapper(dependencyExporter)); }
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); }
protected virtual void BuildDependencyScope(IOuterDependencyScopeGetter outerScopeGetter, IDependencyExporter exporter, bool ownsExporter, out IDependencyScope scope) => scope = new DependencyScope(outerScopeGetter: outerScopeGetter, exporter: exporter, ownsExporter: ownsExporter, owner: this);