특정 속성에 대한 유효성 검사 규칙을 지정하려면 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