// TODO: Put strings into the resources. // public DependencyResolutionSpecs( Type dependencyType, bool ensureResolution = false, bool isNewInstanceRequired = false, IArgsTuple newInstanceFactoryArgs = null, bool preventNewInstanceInitialization = false, IDependencyResolutionModel primaryResolutionModel = null, IDependencyResolutionSelectCriterion selectCriterion = null, IDisposeRegistry disposeRegistry = null) { // dependencyType.EnsureNotNull(nameof(dependencyType)); if (!isNewInstanceRequired && newInstanceFactoryArgs != null) { throw new ArgumentException( message: $"Этот аргумент не применим и должен иметь значение '{((object)null).FmtStr().G()}', когда значение аргумента '{nameof(isNewInstanceRequired)}' равно '{false.FmtStr().G()}'.", paramName: nameof(newInstanceFactoryArgs)); } // _dependencyType = dependencyType; _ensureResolution = ensureResolution; _isNewInstanceRequired = isNewInstanceRequired; _newInstanceFactoryArgs = newInstanceFactoryArgs; _preventNewInstanceInitialization = preventNewInstanceInitialization; _primaryResolutionModel = primaryResolutionModel; _selectCriterion = selectCriterion; _disposeRegistry = disposeRegistry; }
protected override void Dispose(bool explicitDispose) { _dependencyType = null; _primaryResolutionModel = null; _selectCriterion = null; _newInstanceFactoryArgs = null; _disposeRegistry = null; // base.Dispose(explicitDispose); }
public DependencyResolutionSpecs( Type dependencyTypeConstraint = null, bool ensureResolution = false, bool isNewInstanceRequired = false, IArgsTuple newInstanceFactoryArgs = null, bool preventNewInstanceInitialization = false, IDependencyResolutionModel primaryResolutionModel = null, IDependencyResolutionSelectCriterion <TDependency> selectCriterion = null, IDisposeRegistry disposeRegistry = null) : base( dependencyType: dependencyTypeConstraint.Arg(nameof(dependencyTypeConstraint)).EnsureCompatible(__DependencyType).Value ?? __DependencyType, ensureResolution: ensureResolution, isNewInstanceRequired: isNewInstanceRequired, newInstanceFactoryArgs: newInstanceFactoryArgs, preventNewInstanceInitialization: preventNewInstanceInitialization, primaryResolutionModel: primaryResolutionModel, selectCriterion: selectCriterion, disposeRegistry: disposeRegistry) { _selectCriterion = selectCriterion; }