/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="inferValidators">If true, the runner will try to infer the validators based on data types</param> /// <param name="registry">The registry.</param> /// <param name="contributors">The contributors.</param> public ValidatorRunner(bool inferValidators, IValidatorRegistry registry, IValidationContributor[] contributors) { if (registry == null) { throw new ArgumentNullException("registry"); } this.inferValidators = inferValidators; validationPerformer = DefaultSettings.DefaultValidationPerformer; errorPerInstance = new Dictionary <object, ErrorSummary>(); this.registry = registry; this.contributors.AddRange(contributors); // resolve contributor dependencies if needed foreach (IValidationContributor contributor in this.contributors) { IHasValidationPerformerDependency hasPerformerDependency = (contributor as IHasValidationPerformerDependency); if (hasPerformerDependency != null) { hasPerformerDependency.ValidationPerformer = this.validationPerformer; } IHasValidatorRunnerDependency hasValidatorRunnerDependency = contributor as IHasValidatorRunnerDependency; if (hasValidatorRunnerDependency != null) { hasValidatorRunnerDependency.ValidatorRunner = this; } IHasValidatorRegistryDependency hasValidatorRegistryDependency = (contributor as IHasValidatorRegistryDependency); if (hasValidatorRegistryDependency != null) { hasValidatorRegistryDependency.ValidatorRegistry = registry; } } }
/// <summary> /// Initializes a new instance of the <see cref="ValidatorRunner"/> class. /// </summary> /// <param name="inferValidators">If true, the runner will try to infer the validators based on data types</param> /// <param name="registry">The registry.</param> /// <param name="contributors">The contributors.</param> public ValidatorRunner(bool inferValidators, IValidatorRegistry registry, IValidationContributor[] contributors) { if (registry == null) throw new ArgumentNullException("registry"); this.inferValidators = inferValidators; validationPerformer = DefaultSettings.DefaultValidationPerformer; errorPerInstance = new Dictionary<object, ErrorSummary>(); this.registry = registry; this.contributors.AddRange(contributors); // resolve contributor dependencies if needed foreach(IValidationContributor contributor in this.contributors) { IHasValidationPerformerDependency hasPerformerDependency = (contributor as IHasValidationPerformerDependency); if (hasPerformerDependency != null) hasPerformerDependency.ValidationPerformer = this.validationPerformer; IHasValidatorRunnerDependency hasValidatorRunnerDependency = contributor as IHasValidatorRunnerDependency; if (hasValidatorRunnerDependency != null) hasValidatorRunnerDependency.ValidatorRunner = this; IHasValidatorRegistryDependency hasValidatorRegistryDependency = (contributor as IHasValidatorRegistryDependency); if (hasValidatorRegistryDependency != null) hasValidatorRegistryDependency.ValidatorRegistry = registry; } }