FluentValidation 7.6.0-preview1

A validation library for .NET that uses a fluent interface to construct strongly-typed validation rules.

Showing the top 20 packages that depend on FluentValidation.

Packages Downloads
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
151
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
159
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
163
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
176
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
185
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
364
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
549
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
1,137
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
153
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
176
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
200
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
390
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
405
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.
190
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.
208
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.
275
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.
498
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.
571

Changes in 7.5.2: * RuleSet method can now take multiple ruleset names by usinga comma-separated string. * Make setters on ValidationFailure's properties public to allow for easier deserialization. * Additional overload for OverridePropertyName that takes an expression. * Add overload of Include that takes a func to lazily create the inner validator. * Make error code resolution pluggable using ValidatorOptions.ErrorCodeResolver Changes in 7.5.1: * Resolved issues with referencing FluentValidation from legacy PCLs. * Added support for CustomizeValidatorAttribute to the legacy WebApi integration for consistency with MVC5 and AspNetCore. Changes in 7.6: * Update ASP.NET Core integration to ASP.NET Core 2.1 Changes in 7.5: * Better handling of clientside messages when using custom overriden language resources * Added flag in the ValidationContext's RootDataContext when a validator is invoked by the automatic MVC/WebApi integration * Improvements to some of the validation tester's messages * Added Transform method to transform property values prior to validation * Improve support for DisplayAttribute / DisplayNameAttribute when inferring property display name * New language translations (Slovak/Hebrew/Brazilian Portuguese) * Cache display names by default * Ensure ShouldHaveChildValidator test method works with model-level rules * Removed netstandard1.0 support. Supported platforms are now netstandard1.1, netstandard2.0 and net45. Changes in 7.4: * Improved syntax for DependentRules * ValidationException serialization support when running on full framework * Added ComparisonProperty placeholder to some validators * The Test Helper now correctly handles read-only properties * Add CancellationToken support to ValidateAndThrowAsync and various ValidateAsync overloads * Improved functionality for custom MessageBuilders * Updated AspNetCore integration to MVC version 2.0.2 * Update MVC5 AddToModelState extension not to overwrite existing attempted values * Added SetRulesetForClientsideMessages method for MVC5/AspNetCore as an alternative to using the RulesetForClientSideMessagesAttribute Changes in 7.3: * Major changes to AspNetCore integration including better support for collections and implicit validation (opt-in) * Fix - Updated EnumValidator's Flags support to handle the ~0 value * Fix - TestHelper checking for child validator would respond with the wrong type * Fix - Updated translations for some validators * Fix - Overload of WithName that takes a lambda generated an exception * Added versions of WhenAsync and UnlessAsync that support CancellationTokens * Simplify calls to DependentRules * Add Skip property to CustomizeValidatorAttribute in the ASP.NET Core integration Changes in 7.2: * Updated AspNetCore integration to support IValidatableObject * Updated AspNetCore integration to allow mixing multiple validation strategies in the same model * Updated AspNetCore integration to support RulesetForClientsideMessagesAttribute * Fix - Property names were not generated properly for nested types when using AddFailure inside a Custom validator * Fix - NullReferenceException when using CustomAsync but the validator is invoked synchronously * Fix - Clientside integration in AspNetCore being resolved from the root-level service provider * Fix - Allow empty string to be passed to OverridePropertyName Changes in 7.1.1: * Fix - Incorrect property name was generated when using RuleForEach combined with SetValidator * Fix - Nesting async validators inside DependentRules didn't wait for completion Changes in 7.1: * New RuleFor().Custom() method as a replacement for the old, deprecated Custom method * Improved messages in the ShouldHaveChildValidator test extension * Test helper works with nested properties * Additional overload of WithState allows access to collection item when used with RuleForEach * Fix - Wrong values were generated as part of the MVC5 clientside integration for MinLength and MaxLength validators * Fix - AssemblyScanner now excludes abstract and generic types * Fix - InvalidCastException when using lazy WithMessage combined with RuleForEach * WithState enhanced to allow access to the ValidationContext Changes in 7.0: 7.0 is a major release that contains several breaking changes, especially with Localization. If you use FluentValidation's support for localization please read the updated documentation: https://github.com/JeremySkinner/FluentValidation/wiki/f.-Localization * Localization rewrite to not require satellite assemblies * New 'Custom' rule method replaces the root-level Custom method * Switch to Netstandard based build process * Assemblies are now signed / strongly named - see https://github.com/JeremySkinner/FluentValidation/wiki/l.-Strong-naming-and-signed-packages * Fix - Possible NullReferenceException in the AspNetCore clientside integration for length validators * Fix - Don't clear the ModelValidatorProviders collection by default in the AspNetCore integration (added new ClearValidatorProviders property to control this behaviour) * Fix - Ensure IValidatorFactory is resolved from request scope in asp.net core integration * Fix - Property getter that throws an exception causes validation to fail in WebApi integration * Fix - Issue in AspNetCore integration where we tried to resolve a collection validator in some situations where a class validator should be used * Fix - Incorrect clientside validation attributes generated for email validator and credit card validator in the asp.net core integration * Fix - Child model validation now works in webapi integration * Improve splitting of PascalCased property names to support uppercase character sequences * ValidationResult.ErrorCode property now always returns the type of the PropertyValidator that generated the message, unless it's been explicitly overriden Full release notes can be found at https://github.com/JeremySkinner/FluentValidation/blob/master/Changelog.txt

Version Downloads Last updated
12.1.1 107 12/04/2025
12.1.0 193 11/04/2025
12.0.0 338 05/06/2025
12.0.0-preview1 102 01/03/2025
11.12.0 70 11/07/2025
11.11.0 303 11/20/2024
11.10.0 357 09/20/2024
11.9.2 264 06/27/2024
11.9.1 128 07/22/2024
11.9.0 281 02/05/2024
11.8.1 164 07/22/2024
11.8.0 123 07/22/2024
11.7.1 110 07/22/2024
11.7.0 122 07/22/2024
11.6.0 130 07/22/2024
11.5.2 119 07/22/2024
11.5.1 273 02/04/2024
11.5.0 116 07/22/2024
11.4.0 119 07/17/2024
11.3.0 145 02/04/2024
11.2.2 121 07/22/2024
11.2.1 129 07/22/2024
11.2.0 128 07/22/2024
11.1.1 122 07/22/2024
11.1.0 123 07/13/2024
11.0.3 136 07/22/2024
11.0.2 122 07/22/2024
11.0.1 115 07/22/2024
11.0.0 126 07/22/2024
10.4.0 221 02/04/2024
10.3.6 117 07/22/2024
10.3.5 109 07/22/2024
10.3.4 135 07/17/2024
10.3.3 132 07/17/2024
10.3.1 135 07/22/2024
10.3.0 114 05/29/2024
10.2.3 135 07/22/2024
10.2.2 112 07/22/2024
10.2.1 112 07/22/2024
10.2.0 125 07/22/2024
10.1.0 127 07/22/2024
10.0.4 139 07/22/2024
9.5.4 138 07/22/2024
9.5.3 118 07/22/2024
9.5.2 127 07/22/2024
9.5.1 115 07/22/2024
9.5.0 134 02/09/2024
9.4.0 123 07/22/2024
9.3.0 132 07/22/2024
9.3.0-preview3 130 07/22/2024
9.3.0-preview2 122 07/22/2024
9.3.0-preview1 147 07/22/2024
9.2.2 122 07/22/2024
9.2.1 120 07/18/2024
9.2.0 111 07/22/2024
9.1.3 136 07/22/2024
9.1.2 119 07/22/2024
9.1.1 111 07/22/2024
9.1.0 121 07/22/2024
9.0.1 129 07/22/2024
9.0.0-preview5 134 07/22/2024
9.0.0-preview4 114 07/22/2024
9.0.0-preview3 131 07/22/2024
9.0.0-preview2 115 07/22/2024
9.0.0-preview1 123 07/22/2024
8.6.3 134 07/22/2024
8.6.2 115 07/22/2024
8.6.1 121 07/22/2024
8.6.0 122 07/22/2024
8.5.1 127 07/21/2024
8.5.0 126 07/18/2024
8.5.0-preview5 126 07/22/2024
8.5.0-preview4 121 07/22/2024
8.5.0-preview3 118 07/22/2024
8.5.0-preview2 130 07/22/2024
8.5.0-preview1 116 07/22/2024
8.4.0 129 07/22/2024
8.3.0 126 07/22/2024
8.2.3 122 07/22/2024
8.2.2 117 07/22/2024
8.2.1 123 07/22/2024
8.2.0 133 07/22/2024
8.1.3 140 07/22/2024
8.1.2 111 07/22/2024
8.1.1 120 07/22/2024
8.1.0 141 07/22/2024
8.1.0-preview2 122 07/22/2024
8.1.0-preview1 128 07/22/2024
8.0.101 125 07/22/2024
8.0.100 117 07/17/2024
8.0.0 119 07/22/2024
8.0.0-rc1 135 07/22/2024
8.0.0-preview4 119 07/22/2024
8.0.0-preview3 127 07/22/2024
8.0.0-preview2 127 07/22/2024
7.6.105 118 07/22/2024
7.6.104 123 07/22/2024
7.6.103 121 07/22/2024
7.6.102 122 07/22/2024
7.6.101 120 07/22/2024
7.6.100 129 07/22/2024
7.6.0 139 07/22/2024
7.6.0-preview1 131 07/22/2024
7.5.2 120 07/22/2024
7.5.1 115 06/21/2024
7.5.0 128 07/22/2024
7.4.0 131 07/22/2024
7.3.4 122 07/22/2024
7.3.3 135 07/22/2024
7.3.2 118 07/22/2024
7.3.1 121 07/22/2024
7.3.0 120 07/22/2024
7.3.0-beta3 131 07/22/2024
7.3.0-beta2 129 07/22/2024
7.3.0-beta1 137 07/22/2024
7.2.1 131 07/22/2024
7.2.0 119 07/22/2024
7.2.0-beta3 122 07/22/2024
7.2.0-beta2 136 07/22/2024
7.2.0-beta1 154 07/22/2024
7.1.1 119 07/22/2024
7.1.0 112 07/22/2024
7.1.0-beta1 120 07/22/2024
7.0.3 124 07/22/2024
7.0.2 114 07/22/2024
7.0.1 139 07/22/2024
7.0.0 120 07/22/2024
7.0.0-beta3 116 07/22/2024
7.0.0-beta2 125 07/22/2024
7.0.0-beta1 109 07/22/2024
6.4.1 137 07/22/2024
6.4.1-beta1 150 07/22/2024
6.4.0 126 07/22/2024
6.4.0-rc4 145 07/22/2024
6.4.0-rc3 121 07/22/2024
6.4.0-rc2 137 07/22/2024
6.4.0-rc1 132 07/22/2024
6.4.0-beta9 157 07/22/2024
6.4.0-beta8 161 07/22/2024
6.4.0-beta7 125 07/22/2024
6.4.0-beta6 135 07/22/2024
6.4.0-beta5 135 07/22/2024
6.4.0-beta4 131 07/22/2024
6.4.0-beta3 131 07/22/2024
6.4.0-beta2 128 07/22/2024
6.4.0-beta10 142 07/22/2024
6.4.0-beta1 109 07/22/2024
6.3.4-alpha 126 07/22/2024
6.3.3-alpha 116 07/22/2024
6.2.1 126 07/22/2024
6.2.1-beta1 129 07/22/2024
6.2.0 122 07/22/2024
6.2.0-beta1 128 07/22/2024
6.1.0 124 07/22/2024
6.0.2 113 07/22/2024
6.0.1 117 07/22/2024
6.0.0 128 07/22/2024
5.6.2 126 07/22/2024
5.6.1 128 07/22/2024
5.5.0 133 07/22/2024
5.4.0 129 07/22/2024
5.3.0 128 07/21/2024
5.2.0 125 07/22/2024
5.1.0 131 07/22/2024
5.0.0.1 126 07/22/2024
4.0.0.1 127 07/22/2024
4.0.0 135 07/22/2024
3.4.6 118 07/22/2024
3.4.0 152 07/22/2024
3.3.1 145 07/22/2024
3.2.0 141 07/22/2024
3.1.0 128 07/22/2024
3.0.0.1 114 07/22/2024
3.0.0 142 07/22/2024
2.0.0 115 07/22/2024
1.3.0 123 07/22/2024