Exemple #1
0
        /// <summary>
        /// Creates the validator runner.
        /// </summary>
        /// <returns></returns>
        protected virtual IValidatorRunner CreateRunner()
        {
            IValidationContributor[] contributors = new IValidationContributor[] { contributor };
            IValidatorRunner         runner       = new ValidatorRunner(contributors, new CachedValidationRegistry());

            return(runner);
        }
		/// <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="contributors">The contributors.</param>
		/// <param name="registry">The registry.</param>
		public ValidatorRunner(IValidationContributor[] contributors, IValidatorRegistry registry)
			: this(DefaultSettings.InferValidators, registry, contributors)
		{}
		/// <summary>
		/// Creates the validator runner.
		/// </summary>
		/// <returns></returns>
		protected virtual IValidatorRunner CreateRunner()
		{
			IValidationContributor[] contributors = new IValidationContributor[] { contributor };
			IValidatorRunner runner = new ValidatorRunner(contributors, new CachedValidationRegistry());
			return runner;
		}