protected Validator CreateValidatorForValidatedElement(IValidatedElement validatedElement, CompositeValidatorBuilderCreator validatorBuilderCreator) { IEnumerator<IValidatorDescriptor> validatorDescriptorsEnumerator = validatedElement.GetValidatorDescriptors().GetEnumerator(); if ( !validatorDescriptorsEnumerator.MoveNext()) { return null; } CompositeValidatorBuilder validatorBuilder = validatorBuilderCreator(validatedElement); do { if (validatorDescriptorsEnumerator.Current == null) { continue; } Validator validator = validatorDescriptorsEnumerator.Current.CreateValidator(validatedElement.TargetType, validatedElement.MemberInfo.ReflectedType, this.memberAccessValidatorFactory.MemberValueAccessBuilder); validatorBuilder.AddValueValidator(validator); } while (validatorDescriptorsEnumerator.MoveNext()); return validatorBuilder.GetValidator(); }
/// <summary> /// /// </summary> /// <param name="validatedElement"></param> /// <param name="validatorBuilderCreator"></param> /// <returns></returns> protected Validator CreateValidatorForValidatedElement( IValidatedElement validatedElement, CompositeValidatorBuilderCreator validatorBuilderCreator) { IEnumerator <IValidatorDescriptor> validatorDescriptorsEnumerator = validatedElement.GetValidatorDescriptors().GetEnumerator(); if (!validatorDescriptorsEnumerator.MoveNext()) { return(null); } CompositeValidatorBuilder validatorBuilder = validatorBuilderCreator(validatedElement); do { Validator validator = validatorDescriptorsEnumerator.Current .CreateValidator( validatedElement.TargetType, validatedElement.MemberInfo.ReflectedType, this.memberAccessValidatorFactory.MemberValueAccessBuilder, this.validatorFactory); validatorBuilder.AddValueValidator(validator); }while (validatorDescriptorsEnumerator.MoveNext()); return(validatorBuilder.GetValidator()); }