3
람다 식을 작성하여이를 rulefor에 전달하려고합니다. 이 코드는 컴파일하지만 나는 follwing을 메시지가 실행할 때 ..람다 식에서 전달하는 유창한 유효성 검사
이 유효성 검사 코드는 다음입니다 " 'FluentValidation.Internal.RuleBuilder'는 '길이'에 대한 정의가 포함되어 있지 않습니다." 목표는 두 명의 유효성 검사기에서 동일한 유효성 검사 규칙을 다시 사용자 이름 또는 다른 속성에 적용해야한다는 것입니다.
public class UserValidator : AbstractValidator<DTO.User>
{
public UserValidator(DTO.User u)
{
foreach (PropertyInfo property in
this.GetType().BaseType
.GetGenericArguments()[0]
.GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
if (property.Name == "Username")
{
ParameterExpression parameter = Expression.Parameter(typeof(DTO.User), "p");
Expression propertyAccess = Expression.Property(parameter, property);
// Make it easier to call RuleFor without knowing TProperty
dynamic lambda = Expression.Lambda(propertyAccess, parameter);
RuleFor(lambda)
.Length(4, 9)
.WithMessage("Valid between 4 and 9 chars");
//RuleFor(x => x.Username)
// .Length(4, 9)
// .WithMessage("Valid between 4 and 9 chars");
}
}
}
어떤 도움을 주시면 감사 ...
빠른 팁 : 언어를 추가
당신이 정말로 다음 길이를 주장 코드의 반복을 피하기하려면 아마도 인수로 식을 취 도우미를 사용하여 할 수있는, 말했다 당신이 당신의 태그 목록에서 사용하고 있습니다 (방금했습니다). 귀하의 질문은 해당 언어의 전문가가 읽을 기회가 더 많습니다. 대부분의 사람들은 관련 태그로 질문을 필터링 할 것으로 기대합니다. – Flanfl