FluentValidation 12.0.0

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
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
72
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
73
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
75
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
76
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
77
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
97
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
119
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
152
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
861
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
76
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
79
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
105
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
116
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
268
RulesEngine
Rules Engine is a package for abstracting business logic/rules/policies out of the system. This works in a very simple way by giving you an ability to put your rules in a store outside the core logic of the system thus ensuring that any change in rules doesn't affect the core system.
102
RulesEngine
Rules Engine is a package for abstracting business logic/rules/policies out of the system. This works in a very simple way by giving you an ability to put your rules in a store outside the core logic of the system thus ensuring that any change in rules doesn't affect the core system.
104
RulesEngine
Rules Engine is a package for abstracting business logic/rules/policies out of the system. This works in a very simple way by giving you an ability to put your rules in a store outside the core logic of the system thus ensuring that any change in rules doesn't affect the core system.
130
RulesEngine
Rules Engine is a package for abstracting business logic/rules/policies out of the system. This works in a very simple way by giving you an ability to put your rules in a store outside the core logic of the system thus ensuring that any change in rules doesn't affect the core system.
485

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.0.0 43 05/06/2025
12.0.0-preview1 28 01/03/2025
11.11.0 143 11/20/2024
11.10.0 213 09/20/2024
11.9.2 192 06/27/2024
11.9.1 66 07/22/2024
11.9.0 212 02/05/2024
11.8.1 103 07/22/2024
11.8.0 58 07/22/2024
11.7.1 56 07/22/2024
11.7.0 56 07/22/2024
11.6.0 60 07/22/2024
11.5.2 56 07/22/2024
11.5.1 176 02/04/2024
11.5.0 50 07/22/2024
11.4.0 59 07/17/2024
11.3.0 71 02/04/2024
11.2.2 55 07/22/2024
11.2.1 67 07/22/2024
11.2.0 64 07/22/2024
11.1.1 52 07/22/2024
11.1.0 66 07/13/2024
11.0.3 77 07/22/2024
11.0.2 58 07/22/2024
11.0.1 51 07/22/2024
11.0.0 58 07/22/2024
10.4.0 137 02/04/2024
10.3.6 54 07/22/2024
10.3.5 51 07/22/2024
10.3.4 57 07/17/2024
10.3.3 63 07/17/2024
10.3.1 61 07/22/2024
10.3.0 51 05/29/2024
10.2.3 61 07/22/2024
10.2.2 56 07/22/2024
10.2.1 56 07/22/2024
10.2.0 62 07/22/2024
10.1.0 63 07/22/2024
10.0.4 61 07/22/2024
9.5.4 59 07/22/2024
9.5.3 54 07/22/2024
9.5.2 65 07/22/2024
9.5.1 59 07/22/2024
9.5.0 70 02/09/2024
9.4.0 61 07/22/2024
9.3.0 63 07/22/2024
9.3.0-preview3 63 07/22/2024
9.3.0-preview2 62 07/22/2024
9.3.0-preview1 63 07/22/2024
9.2.2 53 07/22/2024
9.2.1 58 07/18/2024
9.2.0 52 07/22/2024
9.1.3 65 07/22/2024
9.1.2 62 07/22/2024
9.1.1 58 07/22/2024
9.1.0 55 07/22/2024
9.0.1 61 07/22/2024
9.0.0-preview5 55 07/22/2024
9.0.0-preview4 60 07/22/2024
9.0.0-preview3 59 07/22/2024
9.0.0-preview2 59 07/22/2024
9.0.0-preview1 58 07/22/2024
8.6.3 67 07/22/2024
8.6.2 53 07/22/2024
8.6.1 55 07/22/2024
8.6.0 55 07/22/2024
8.5.1 59 07/21/2024
8.5.0 65 07/18/2024
8.5.0-preview5 62 07/22/2024
8.5.0-preview4 53 07/22/2024
8.5.0-preview3 55 07/22/2024
8.5.0-preview2 61 07/22/2024
8.5.0-preview1 59 07/22/2024
8.4.0 60 07/22/2024
8.3.0 66 07/22/2024
8.2.3 64 07/22/2024
8.2.2 58 07/22/2024
8.2.1 58 07/22/2024
8.2.0 62 07/22/2024
8.1.3 59 07/22/2024
8.1.2 57 07/22/2024
8.1.1 50 07/22/2024
8.1.0 60 07/22/2024
8.1.0-preview2 54 07/22/2024
8.1.0-preview1 70 07/22/2024
8.0.101 62 07/22/2024
8.0.100 59 07/17/2024
8.0.0 55 07/22/2024
8.0.0-rc1 67 07/22/2024
8.0.0-preview4 57 07/22/2024
8.0.0-preview3 57 07/22/2024
8.0.0-preview2 62 07/22/2024
7.6.105 60 07/22/2024
7.6.104 55 07/22/2024
7.6.103 50 07/22/2024
7.6.102 53 07/22/2024
7.6.101 52 07/22/2024
7.6.100 57 07/22/2024
7.6.0 65 07/22/2024
7.6.0-preview1 61 07/22/2024
7.5.2 56 07/22/2024
7.5.1 63 06/21/2024
7.5.0 63 07/22/2024
7.4.0 53 07/22/2024
7.3.4 53 07/22/2024
7.3.3 57 07/22/2024
7.3.2 56 07/22/2024
7.3.1 56 07/22/2024
7.3.0 59 07/22/2024
7.3.0-beta3 66 07/22/2024
7.3.0-beta2 59 07/22/2024
7.3.0-beta1 61 07/22/2024
7.2.1 57 07/22/2024
7.2.0 63 07/22/2024
7.2.0-beta3 55 07/22/2024
7.2.0-beta2 69 07/22/2024
7.2.0-beta1 60 07/22/2024
7.1.1 57 07/22/2024
7.1.0 51 07/22/2024
7.1.0-beta1 58 07/22/2024
7.0.3 61 07/22/2024
7.0.2 56 07/22/2024
7.0.1 63 07/22/2024
7.0.0 59 07/22/2024
7.0.0-beta3 49 07/22/2024
7.0.0-beta2 66 07/22/2024
7.0.0-beta1 49 07/22/2024
6.4.1 74 07/22/2024
6.4.1-beta1 76 07/22/2024
6.4.0 67 07/22/2024
6.4.0-rc4 77 07/22/2024
6.4.0-rc3 56 07/22/2024
6.4.0-rc2 63 07/22/2024
6.4.0-rc1 70 07/22/2024
6.4.0-beta9 85 07/22/2024
6.4.0-beta8 88 07/22/2024
6.4.0-beta7 64 07/22/2024
6.4.0-beta6 65 07/22/2024
6.4.0-beta5 69 07/22/2024
6.4.0-beta4 69 07/22/2024
6.4.0-beta3 55 07/22/2024
6.4.0-beta2 62 07/22/2024
6.4.0-beta10 69 07/22/2024
6.4.0-beta1 54 07/22/2024
6.3.4-alpha 63 07/22/2024
6.3.3-alpha 59 07/22/2024
6.2.1 58 07/22/2024
6.2.1-beta1 55 07/22/2024
6.2.0 54 07/22/2024
6.2.0-beta1 62 07/22/2024
6.1.0 59 07/22/2024
6.0.2 53 07/22/2024
6.0.1 55 07/22/2024
6.0.0 63 07/22/2024
5.6.2 61 07/22/2024
5.6.1 60 07/22/2024
5.5.0 53 07/22/2024
5.4.0 68 07/22/2024
5.3.0 70 07/21/2024
5.2.0 54 07/22/2024
5.1.0 71 07/22/2024
5.0.0.1 63 07/22/2024
4.0.0.1 63 07/22/2024
4.0.0 65 07/22/2024
3.4.6 56 07/22/2024
3.4.0 59 07/22/2024
3.3.1 72 07/22/2024
3.2.0 69 07/22/2024
3.1.0 62 07/22/2024
3.0.0.1 55 07/22/2024
3.0.0 62 07/22/2024
2.0.0 56 07/22/2024
1.3.0 63 07/22/2024