FluentValidation 11.0.2

FluentValidation is validation library for .NET that uses a fluent interface and lambda expressions for building strongly-typed validation rules.

Supporting the project

If you use FluentValidation in a commercial project, please sponsor the project financially. FluentValidation is developed and supported by @JeremySkinner for free in his spare time and financial sponsorship helps keep the project going. You can sponsor the project via either GitHub sponsors or OpenCollective.

Example

With FluentValidation, you can define a class that inherits from AbstractValidator which contains the rules for a particular class. The example below shows how you could define rules for a Customer class, and then how to execute the validator.

using FluentValidation;

public class CustomerValidator: AbstractValidator<Customer> {
  public CustomerValidator() {
    RuleFor(x => x.Surname).NotEmpty();
    RuleFor(x => x.Forename).NotEmpty().WithMessage("Please specify a first name");
    RuleFor(x => x.Discount).NotEqual(0).When(x => x.HasDiscount);
    RuleFor(x => x.Address).Length(20, 250);
    RuleFor(x => x.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");
  }

  private bool BeAValidPostcode(string postcode) {
    // custom postcode validating logic goes here
  }
}

var customer = new Customer();
var validator = new CustomerValidator();

// Execute the validator.
ValidationResult results = validator.Validate(customer);

// Inspect any validation failures.
bool success = results.IsValid;
List<ValidationFailure> failures = results.Errors;

Full Documentation

Full documentation can be found at https://docs.fluentvalidation.net

Release Notes and Change Log

Release notes can be found on GitHub.

No packages depend on FluentValidation.

FluentValidation 11 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-11.html Full release notes can be found at https://github.com/FluentValidation/FluentValidation/releases

.NET 5.0

  • No dependencies.

.NET 6.0

  • No dependencies.

.NET Standard 2.0

  • No dependencies.

.NET Standard 2.1

  • No dependencies.

Version Downloads Last updated
12.0.0 9 5/8/2025
12.0.0-preview1 18 2/18/2025
11.11.0 16 2/19/2025
11.10.0 17 10/1/2024
11.9.2 19 7/20/2024
11.9.1 19 5/3/2024
11.9.0 23 3/8/2024
11.8.1 23 3/8/2024
11.8.0 17 3/8/2024
11.7.1 20 3/8/2024
11.7.0 20 3/8/2024
11.6.0 25 2/27/2024
11.5.2 27 3/8/2024
11.5.1 22 3/8/2024
11.5.0 23 3/6/2024
11.4.0 26 3/8/2024
11.3.0 20 3/8/2024
11.2.2 23 3/8/2024
11.2.1 20 3/8/2024
11.2.0 22 2/12/2024
11.1.1 21 3/8/2024
11.1.0 25 3/3/2024
11.0.3 26 3/8/2024
11.0.2 20 3/8/2024
11.0.1 26 3/2/2024
11.0.0 22 2/27/2024
10.4.0 22 2/26/2024
10.3.6 21 3/8/2024
10.3.5 20 3/8/2024
10.3.4 21 3/8/2024
10.3.3 21 3/8/2024
10.3.1 26 3/8/2024
10.3.0 23 2/11/2024
10.2.3 21 3/8/2024
10.2.2 20 3/1/2024
10.2.1 24 3/2/2024
10.2.0 21 2/10/2024
10.1.0 24 3/8/2024
10.0.4 25 3/7/2024
9.5.4 23 3/8/2024
9.5.3 19 3/8/2024
9.5.2 25 3/8/2024
9.5.1 22 3/8/2024
9.5.0 22 3/8/2024
9.4.0 24 3/8/2024
9.3.0 24 2/28/2024
9.3.0-preview3 26 2/27/2024
9.3.0-preview2 28 4/12/2022
9.3.0-preview1 23 3/8/2024
9.2.2 49 3/8/2024
9.2.1 23 3/8/2024
9.2.0 31 2/11/2024
9.1.3 18 3/1/2024
9.1.2 23 2/10/2024
9.1.1 21 2/21/2024
9.1.0 24 3/1/2024
9.0.1 25 3/8/2024
9.0.0-preview5 20 3/8/2024
9.0.0-preview4 26 3/8/2024
9.0.0-preview3 24 3/8/2024
9.0.0-preview2 22 3/8/2024
9.0.0-preview1 21 3/8/2024
8.6.3 24 3/8/2024
8.6.2 26 3/8/2024
8.6.1 24 3/8/2024
8.6.0 24 2/23/2024
8.5.1 24 2/23/2024
8.5.0 23 3/4/2024
8.5.0-preview5 26 3/8/2024
8.5.0-preview4 16 3/8/2024
8.5.0-preview3 24 3/8/2024
8.5.0-preview2 18 3/8/2024
8.5.0-preview1 24 3/8/2024
8.4.0 23 3/8/2024
8.3.0 20 3/8/2024
8.2.3 18 3/8/2024
8.2.2 24 3/8/2024
8.2.1 21 3/8/2024
8.2.0 20 3/8/2024
8.1.3 20 3/8/2024
8.1.2 21 3/8/2024
8.1.1 20 2/10/2024
8.1.0 25 3/4/2024
8.1.0-preview2 21 3/8/2024
8.1.0-preview1 24 3/8/2024
8.0.101 24 3/8/2024
8.0.100 21 3/8/2024
8.0.0 20 3/5/2024
8.0.0-rc1 25 3/8/2024
8.0.0-preview4 23 3/8/2024
8.0.0-preview3 27 3/8/2024
8.0.0-preview2 27 2/29/2024
7.6.105 24 3/8/2024
7.6.104 23 3/8/2024
7.6.103 24 3/8/2024
7.6.102 25 3/8/2024
7.6.101 24 3/3/2024
7.6.100 23 3/8/2024
7.6.0 22 3/8/2024
7.6.0-preview1 21 3/8/2024
7.5.2 21 3/8/2024
7.5.1 20 2/24/2024
7.5.0 27 3/8/2024
7.4.0 19 3/7/2024
7.3.4 20 3/8/2024
7.3.3 21 3/8/2024
7.3.2 22 3/8/2024
7.3.1 24 3/8/2024
7.3.0 23 3/8/2024
7.3.0-beta3 21 3/8/2024
7.3.0-beta2 23 3/8/2024
7.3.0-beta1 20 3/8/2024
7.2.1 23 3/8/2024
7.2.0 22 2/26/2024
7.2.0-beta3 23 3/8/2024
7.2.0-beta2 18 3/8/2024
7.2.0-beta1 19 3/8/2024
7.1.1 21 3/8/2024
7.1.0 22 3/8/2024
7.1.0-beta1 23 3/8/2024
7.0.3 24 3/8/2024
7.0.2 20 3/8/2024
7.0.1 24 3/8/2024
7.0.0 23 3/8/2024
7.0.0-beta3 22 3/8/2024
7.0.0-beta2 20 3/8/2024
7.0.0-beta1 19 3/8/2024
6.4.1 21 3/8/2024
6.4.1-beta1 24 3/8/2024
6.4.0 22 3/8/2024
6.4.0-rc4 26 3/8/2024
6.4.0-rc3 23 3/8/2024
6.4.0-rc2 23 3/8/2024
6.4.0-rc1 22 3/8/2024
6.4.0-beta9 20 3/8/2024
6.4.0-beta8 20 3/8/2024
6.4.0-beta7 23 3/8/2024
6.4.0-beta6 20 3/8/2024
6.4.0-beta5 22 3/8/2024
6.4.0-beta4 23 3/8/2024
6.4.0-beta3 20 3/8/2024
6.4.0-beta2 25 3/8/2024
6.4.0-beta10 21 3/8/2024
6.4.0-beta1 19 3/8/2024
6.3.4-alpha 20 3/2/2024
6.3.3-alpha 21 3/8/2024
6.2.1 22 3/8/2024
6.2.1-beta1 27 3/8/2024
6.2.0 18 3/8/2024
6.2.0-beta1 21 3/8/2024
6.1.0 24 3/8/2024
6.0.2 21 3/8/2024
6.0.1 24 3/8/2024
6.0.0 21 3/8/2024
5.6.2 22 3/8/2024
5.6.1 21 3/8/2024
5.5.0 20 3/8/2024
5.4.0 25 3/2/2024
5.3.0 24 3/8/2024
5.2.0 24 3/8/2024
5.1.0 24 3/6/2024
5.0.0.1 20 2/11/2024
4.0.0.1 22 2/10/2024
4.0.0 20 3/8/2024
3.4.6 23 3/8/2024
3.4.0 21 3/8/2024
3.3.1 18 3/8/2024
3.2.0 27 3/3/2024
3.1.0 23 3/8/2024
3.0.0.1 27 2/10/2024
3.0.0 19 3/8/2024
2.0.0 27 3/8/2024
1.3.0 22 3/8/2024