FluentValidation 12.0.0-preview1

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.

Showing the top 20 packages that depend on FluentValidation.

Packages Downloads
FastEndpoints
A light-weight REST Api framework for ASP.Net 6 and newer that implements REPR (Request-Endpoint-Response) Pattern.
29
FastEndpoints
A light-weight REST Api framework for ASP.Net 6 and newer that implements REPR (Request-Endpoint-Response) Pattern.
28
FastEndpoints
A light-weight REST Api framework for ASP.Net 6 and newer that implements REPR (Request-Endpoint-Response) Pattern.
27
FastEndpoints
A light-weight REST Api framework for ASP.Net 8 and newer that implements REPR (Request-Endpoint-Response) Pattern.
27
FastEndpoints
A light-weight REST Api framework for ASP.Net 6 and newer that implements REPR (Request-Endpoint-Response) Pattern.
25
FastEndpoints
A light-weight REST Api framework for ASP.Net 6 and newer that implements REPR (Request-Endpoint-Response) Pattern.
24
FastEndpoints
A light-weight REST Api framework for ASP.Net 6 and newer that implements REPR (Request-Endpoint-Response) Pattern.
23
FastEndpoints
A light-weight REST Api framework for ASP.Net 6 that implements REPR (Request-Endpoint-Response) Pattern.
22
FastEndpoints
A light-weight REST Api framework for ASP.Net 6 and newer that implements REPR (Request-Endpoint-Response) Pattern.
22
FastEndpoints
A light-weight REST Api framework for ASP.Net 8 and newer that implements REPR (Request-Endpoint-Response) Pattern.
22

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

.NET 8.0

  • No dependencies.

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