Để chỉ định quy tắc xác thực cho một thuộc tính cụ thể, hãy gọi phương thức RuleFor, truyền một biểu thức lambda cho biết thuộc tính mà bạn muốn xác thực
RuleFor (p => p.DateOfBirth)
Để chạy trình xác thực, hãy khởi tạo đối tượng trình xác thực và gọi phương thức Xác thực, truyền vào đối tượng để xác thực.
ValidationResult results =validator.Validate (person);
Phương thức Validate trả về một đối tượng ValidationResult. Điều này chứa hai thuộc tính
IsValid - một boolean cho biết việc xác thực có thành công hay không.
Lỗi - một tập hợp các đối tượng ValidationFailure chứa thông tin chi tiết về bất kỳ lỗi xác thực nào
Ví dụ 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; } }
Đầu ra
Invalid Date Of Birth