/// <summary> /// Creates the validator for the specified target and ruleset. /// </summary> /// <param name="targetType">The <see cref="Type"/>to validate.</param> /// <param name="ruleset">The ruleset to use when validating</param> /// <param name="mainValidatorFactory">Factory to use when building nested validators.</param> /// <returns>A <see cref="Validator"/></returns> protected internal override Validator InnerCreateValidator( Type targetType, string ruleset, ValidatorFactory mainValidatorFactory) { MetadataValidatorBuilder builder = new MetadataValidatorBuilder(MemberAccessValidatorBuilderFactory.Default, mainValidatorFactory); return builder.CreateValidator(targetType, ruleset); }
/// <summary> /// Creates the validator for the specified target and ruleset. /// </summary> /// <param name="targetType">The <see cref="Type"/>to validate.</param> /// <param name="ruleset">The ruleset to use when validating</param> /// <param name="mainValidatorFactory">Factory to use when building nested validators.</param> /// <returns>A <see cref="Validator"/></returns> protected internal override Validator InnerCreateValidator( Type targetType, string ruleset, ValidatorFactory mainValidatorFactory) { MetadataValidatorBuilder builder = new MetadataValidatorBuilder(MemberAccessValidatorBuilderFactory.Default, mainValidatorFactory); return(builder.CreateValidator(targetType, ruleset)); }
/// <summary> /// /// </summary> /// <param name="type"></param> /// <param name="propertyInfo"></param> /// <param name="ruleset"></param> /// <param name="memberAccessValidatorBuilderFactory"></param> /// <returns></returns> public static Validator GetPropertyValidatorFromAttributes( Type type, PropertyInfo propertyInfo, string ruleset, MemberAccessValidatorBuilderFactory memberAccessValidatorBuilderFactory) { Validator validator = null; lock (attributeOnlyPropertyValidatorsCache) { var key = new PropertyValidatorCacheKey(type, propertyInfo.Name, ruleset); if (!attributeOnlyPropertyValidatorsCache.TryGetValue(key, out validator)) { validator = new MetadataValidatorBuilder(memberAccessValidatorBuilderFactory, ValidationFactory.DefaultCompositeValidatorFactory) .CreateValidatorForProperty(propertyInfo, ruleset); attributeOnlyPropertyValidatorsCache[key] = validator; } } return(validator); }