Fluent Validation For. NET, fluentvalidation
// Data verification in. net, an open-source project that can be directly downloaded
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 here14} 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;