Fluent Validation For .NET
//.net 中数据验证,一个开源的项目,直接下载
1 using FluentValidation; 2 3 public class CustomerValidator: AbstractValidator<Customer> { 4 public CustomerValidator() { 5 RuleFor(customer => customer.Surname).NotEmpty(); 6 RuleFor(customer => customer.Forename).NotEmpty().WithMessage("Please specify a first name"); 7 RuleFor(customer => customer.Discount).NotEqual(0).When(customer => customer.HasDiscount); 8 RuleFor(customer => customer.Address).Length(20, 250); 9 RuleFor(customer => customer.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode"); 10 } 11 12 private bool BeAValidPostcode(string postcode) { 13 // custom postcode validating logic goes here 14 } 15 } 16 17 Customer customer = new Customer(); 18 CustomerValidator validator = new CustomerValidator(); 19 ValidationResult results = validator.Validate(customer); 20 21 bool validationSucceeded = results.IsValid; 22 IList<ValidationFailure> failures = results.Errors;