Validating data
FluentValidation allows you to define strongly typed validation rules in a human-readable way.
You create a validator for a type by inheriting from AbstractValidator<T>, where T is the type that you want to validate. In the constructor, you call the RuleFor method to define one or more rules. If a rule should run only in specified scenarios, then you call the When method.
Understanding the built-in validators
FluentValidation ships with lots of useful built-in validator extension methods for defining rules, as shown in the following partial list:
Null,NotNull,Empty,NotEmptyEqual,NotEqualLength,MaxLength,MinLengthLessThan,LessThanOrEqualTo,GreaterThan,GreaterThanOrEqualToInclusiveBetween,ExclusiveBetweenScalePrecisionMust(aka predicate)Matches(aka regular expression),EmailAddress,CreditCardIsInEnum,IsEnumName
Performing custom validation
The easiest way to...