/// <summary> /// Implements the validation logic for the receiver. /// </summary> /// <param name="objectToValidate">The instance of <typeparamref name="T"/> to validate.</param> /// <param name="currentTarget">The object on the behalf of which the validation is performed.</param> /// <param name="key">The key that identifies the source of <paramref name="objectToValidate"/>.</param> /// <param name="validationResults">The validation results to which the outcome of the validation should be stored.</param> /// <remarks> /// Subclasses must provide a concrete implementation the validation logic. /// </remarks> /// <see cref="Validator.DoValidate"/> protected abstract void DoValidate(T objectToValidate, object currentTarget, string key, ValidationResults validationResults);