특정 속성에 대한 유효성 검사 규칙을 지정하려면 RuleFor 메서드를 호출하여 유효성을 검사하려는 속성을 나타내는 람다 식을 전달합니다.
RuleFor(p => p.DateOfBirth)
유효성 검사기를 실행하려면 유효성 검사기 개체를 인스턴스화하고 Validate 메서드를 호출하여 유효성 검사할 개체를 전달합니다.
ValidationResult 결과 =validator.Validate(사람);
Validate 메서드는 ValidationResult 개체를 반환합니다. 여기에는 두 개의 속성이 포함됩니다.
유효함 - 유효성 검사가 성공했는지 여부를 나타내는 부울입니다.
오류 - 유효성 검사 실패에 대한 세부 정보를 포함하는 ValidationFailure 개체 모음
예시 1
static void Main(string[] args) {
List errors = new List();
PersonModel person = new PersonModel();
person.FirstName = "TestUser";
person.LastName = "TestUser";
person.AccountBalance = 100;
person.DateOfBirth = DateTime.Now.Date.AddYears(1);
PersonValidator validator = new PersonValidator();
ValidationResult results = validator.Validate(person);
if (results.IsValid == false) {
foreach (ValidationFailure failure in results.Errors){
errors.Add(failure.ErrorMessage);
}
}
foreach (var item in errors){
Console.WriteLine(item);
}
Console.ReadLine();
}
}
public class PersonModel {
public string FirstName { get; set; }
public string LastName { get; set; }
public decimal AccountBalance { get; set; }
public DateTime DateOfBirth { get; set; }
}
public class PersonValidator : AbstractValidator{
public PersonValidator(){
RuleFor(p => p.DateOfBirth)
.Must(BeAValidAge).WithMessage("Invalid {PropertyName}");
}
protected bool BeAValidAge(DateTime date){
int currentYear = DateTime.Now.Year;
int dobYear = date.Year;
if (dobYear <= currentYear && dobYear > (currentYear - 120)){
return true;
}
return false;
}
} 출력
Invalid Date Of Birth