//.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;