NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #56 most downloaded on NuGet
A validation library for .NET that uses a fluent interface to construct strongly-typed validation rules.
Last release 10 months ago
03 Dec 2025
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 58 of the last 60 stable releases
15 versions withdrawn
withdrawn after publishing
127 years old
191 releases · first in 1900
FluentValidation 12 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-12.html
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
Fix casing of Microsoft.Extensions.DependencyInjection.Abstractions dependency (#2344)
FluentValidation 12 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-12.html
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
Please read the upgrade guide if you are moving from 11.x to 12.x
Binaries can be downloaded from nuget:
One column per quarter.
Add Tamil language (#2334) Add Telugu language (#2333) Fixes to Japanese tranlations (#2340)
FluentValidation 12 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-12.html
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
Please read the upgrade guide if you are moving from 11.x to 12.x
Binaries can be downloaded from nuget:
FluentValidation 12 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-12.html
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
FluentValidation 11 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-11.html
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
FluentValidation 11 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-11.html
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
Please read the upgrade guide if you are moving from 10.x to 11.x
ScalePrecisionValidator error message clarification (#2211)NullReferenceException (#2152)RuleFor(x => x)) (#2168)AddValidatorsFromAssemblyContaining from registering validators twice (#2182)AbstractValidator.OnRuleAdded to allow customization of rule instances after creation (#2114)AbstractValidator.EnsureInstanceNotNull (See #2069 for migration steps)Transform and TransformAsync methods (See #2072 for migration steps)ScalePrecision validator and introduce PrecisionScale validator as its replacement (#2030)StringSyntaxAttribute.Regex in net7 builds (#1957)MemberNameValidatorSelector should make use of PropertyNameResolver when parsing expressions (#2003)Only() not taking into account parent-level unmatched failures (#1986)Include calls with the MemberNameValidatorSelector (#1989)ToDictionary method to ValidationResult (particularly useful when working with Minimal APIs)-InjectValidator (#1960)IValidatorFactory and ServiceProviderValidatorFactory (#1961)services.AddFluentValidationAutoValidation() and services.AddFluentValidationClientsideAdapters() as replacements for services.AddFluentValidation() (#1965)AsyncValidatorInvokedSynchronouslyException being incorrectly thrown when the top-level When method with RuleForEach, even when invoked asynchronously (#1955)ValidationResult using System.Text.Json (#1928)With* and Without* assertion methods (#1937)RunDefaultMvcValidationAfterFluentValidationExecutes option from ASP.NET integration.Options property from RuleComponent.PropertyValidator backwards compatibility layer.Only() to the test helper asserting that no other validation errors were raised.Binaries can be downloaded from nuget:
FluentValidation 11 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-11.html
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
Please read the upgrade guide if you are moving from 10.x to 11.x
Note that the after 11.1.0 release, the FluentValidation.AspNetCore package has been moved to a separate repository and is now versioned and released separately. These release notes now only apply to the core FluentValidation package. For FluentValidation.AspNetCore release notes, please visit the FluentValidation.AspNetCore repository.
ScalePrecisionValidator error message clarification (#2211)NullReferenceException (#2152)RuleFor(x => x)) (#2168)AddValidatorsFromAssemblyContaining from registering validators twice (#2182)AbstractValidator.OnRuleAdded to allow customization of rule instances after creation (#2114)AbstractValidator.EnsureInstanceNotNull (See #2069 for migration steps)Transform and TransformAsync methods (See #2072 for migration steps)ScalePrecision validator and introduce PrecisionScale validator as its replacement (#2030)StringSyntaxAttribute.Regex in net7 builds (#1957)MemberNameValidatorSelector should make use of PropertyNameResolver when parsing expressions (#2003)Only() not taking into account parent-level unmatched failures (#1986)Include calls with the MemberNameValidatorSelector (#1989)ToDictionary method to ValidationResult (particularly useful when working with Minimal APIs)-InjectValidator (#1960)IValidatorFactory and ServiceProviderValidatorFactory (#1961)services.AddFluentValidationAutoValidation() and services.AddFluentValidationClientsideAdapters() as replacements for services.AddFluentValidation() (#1965)AsyncValidatorInvokedSynchronouslyException being incorrectly thrown when the top-level When method with RuleForEach, even when invoked asynchronously (#1955)ValidationResult using System.Text.Json (#1928)With* and Without* assertion methods (#1937)RunDefaultMvcValidationAfterFluentValidationExecutes option from ASP.NET integration.Options property from RuleComponent.PropertyValidator backwards compatibility layer.Only() to the test helper asserting that no other validation errors were raised.Binaries can be downloaded from nuget:
FluentValidation 11 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-11.html
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
Please read the upgrade guide if you are moving from 10.x to 11.x
Note that the after 11.1.0 release, the FluentValidation.AspNetCore package has been moved to a separate repository and is now versioned and released separately. These release notes now only apply to the core FluentValidation package. For FluentValidation.AspNetCore release notes, please visit the FluentValidation.AspNetCore repository.
ScalePrecisionValidator error message clarification (#2211)NullReferenceException (#2152)RuleFor(x => x)) (#2168)AddValidatorsFromAssemblyContaining from registering validators twice (#2182)AbstractValidator.OnRuleAdded to allow customization of rule instances after creation (#2114)AbstractValidator.EnsureInstanceNotNull (See #2069 for migration steps)Transform and TransformAsync methods (See #2072 for migration steps)ScalePrecision validator and introduce PrecisionScale validator as its replacement (#2030)StringSyntaxAttribute.Regex in net7 builds (#1957)MemberNameValidatorSelector should make use of PropertyNameResolver when parsing expressions (#2003)Only() not taking into account parent-level unmatched failures (#1986)Include calls with the MemberNameValidatorSelector (#1989)ToDictionary method to ValidationResult (particularly useful when working with Minimal APIs)-InjectValidator (#1960)IValidatorFactory and ServiceProviderValidatorFactory (#1961)services.AddFluentValidationAutoValidation() and services.AddFluentValidationClientsideAdapters() as replacements for services.AddFluentValidation() (#1965)AsyncValidatorInvokedSynchronouslyException being incorrectly thrown when the top-level When method with RuleForEach, even when invoked asynchronously (#1955)ValidationResult using System.Text.Json (#1928)With* and Without* assertion methods (#1937)RunDefaultMvcValidationAfterFluentValidationExecutes option from ASP.NET integration.Options property from RuleComponent.PropertyValidator backwards compatibility layer.Only() to the test helper asserting that no other validation errors were raised.Binaries can be downloaded from nuget:
FluentValidation 11 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-11.html
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
Please read the upgrade guide if you are moving from 10.x to 11.x
Note that the after 11.1.0 release, the FluentValidation.AspNetCore package has been moved to a separate repository and is now versioned and released separately. These release notes now only apply to the core FluentValidation package. For FluentValidation.AspNetCore release notes, please visit the FluentValidation.AspNetCore repository.
Fix issue with CascadeMode on child validators (#2207)
NullReferenceException (#2152)RuleFor(x => x)) (#2168)AddValidatorsFromAssemblyContaining from registering validators twice (#2182)AbstractValidator.OnRuleAdded to allow customization of rule instances after creation (#2114)AbstractValidator.EnsureInstanceNotNull (See #2069 for migration steps)Transform and TransformAsync methods (See #2072 for migration steps)ScalePrecision validator and introduce PrecisionScale validator as its replacement (#2030)StringSyntaxAttribute.Regex in net7 builds (#1957)MemberNameValidatorSelector should make use of PropertyNameResolver when parsing expressions (#2003)Only() not taking into account parent-level unmatched failures (#1986)Include calls with the MemberNameValidatorSelector (#1989)ToDictionary method to ValidationResult (particularly useful when working with Minimal APIs)-InjectValidator (#1960)IValidatorFactory and ServiceProviderValidatorFactory (#1961)services.AddFluentValidationAutoValidation() and services.AddFluentValidationClientsideAdapters() as replacements for services.AddFluentValidation() (#1965)AsyncValidatorInvokedSynchronouslyException being incorrectly thrown when the top-level When method with RuleForEach, even when invoked asynchronously (#1955)ValidationResult using System.Text.Json (#1928)With* and Without* assertion methods (#1937)RunDefaultMvcValidationAfterFluentValidationExecutes option from ASP.NET integration.Options property from RuleComponent.PropertyValidator backwards compatibility layer.Only() to the test helper asserting that no other validation errors were raised.Binaries can be downloaded from nuget:
FluentValidation 11 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-11.html
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
Please read the upgrade guide if you are moving from 10.x to 11.x
Note that the after 11.1.0 release, the FluentValidation.AspNetCore package has been moved to a separate repository and is now versioned and released separately. These release notes now only apply to the core FluentValidation package. For FluentValidation.AspNetCore release notes, please visit the FluentValidation.AspNetCore repository.
NullReferenceException (#2152)RuleFor(x => x)) (#2168)AddValidatorsFromAssemblyContaining from registering validators twice (#2182)AbstractValidator.OnRuleAdded to allow customization of rule instances after creation (#2114)AbstractValidator.EnsureInstanceNotNull (See #2069 for migration steps)Transform and TransformAsync methods (See #2072 for migration steps)ScalePrecision validator and introduce PrecisionScale validator as its replacement (#2030)StringSyntaxAttribute.Regex in net7 builds (#1957)MemberNameValidatorSelector should make use of PropertyNameResolver when parsing expressions (#2003)Only() not taking into account parent-level unmatched failures (#1986)Include calls with the MemberNameValidatorSelector (#1989)ToDictionary method to ValidationResult (particularly useful when working with Minimal APIs)-InjectValidator (#1960)IValidatorFactory and ServiceProviderValidatorFactory (#1961)services.AddFluentValidationAutoValidation() and services.AddFluentValidationClientsideAdapters() as replacements for services.AddFluentValidation() (#1965)AsyncValidatorInvokedSynchronouslyException being incorrectly thrown when the top-level When method with RuleForEach, even when invoked asynchronously (#1955)ValidationResult using System.Text.Json (#1928)With* and Without* assertion methods (#1937)RunDefaultMvcValidationAfterFluentValidationExecutes option from ASP.NET integration.Options property from RuleComponent.PropertyValidator backwards compatibility layer.Only() to the test helper asserting that no other validation errors were raised.Binaries can be downloaded from nuget:
Fix memory leak in NotEmptyValidator/EmptyValidator (#2174) Add more descriptive error messages if a rule throws a NullReferenceException (#2152) Add support for caching root parameter expressions (eg RuleFor(x => x)) (#2168) Add builds for .net 8 Prevent AddValidatorsFromAssemblyContaining from registering validators twice (#2182)
Deprecated the ability to disable the root model null check via overriding AbstractValidator.EnsureInstanceNotNull (See #2069 for migration steps)
Please read the upgrade guide if you are moving from 10.x to 11.x
Note that the after 11.1.0 release, the FluentValidation.AspNetCore package has been moved to a separate repository and is now versioned and released separately. These release notes now only apply to the core FluentValidation package. For FluentValidation.AspNetCore release notes, please visit the FluentValidation.AspNetCore repository.
AbstractValidator.OnRuleAdded to allow customization of rule instances after creation (#2114)AbstractValidator.EnsureInstanceNotNull (See #2069 for migration steps)Transform and TransformAsync methods (See #2072 for migration steps)ScalePrecision validator and introduce PrecisionScale validator as its replacement (#2030)StringSyntaxAttribute.Regex in net7 builds (#1957)MemberNameValidatorSelector should make use of PropertyNameResolver when parsing expressions (#2003)Only() not taking into account parent-level unmatched failures (#1986)Include calls with the MemberNameValidatorSelector (#1989)ToDictionary method to ValidationResult (particularly useful when working with Minimal APIs)-InjectValidator (#1960)IValidatorFactory and ServiceProviderValidatorFactory (#1961)services.AddFluentValidationAutoValidation() and services.AddFluentValidationClientsideAdapters() as replacements for services.AddFluentValidation() (#1965)AsyncValidatorInvokedSynchronouslyException being incorrectly thrown when the top-level When method with RuleForEach, even when invoked asynchronously (#1955)ValidationResult using System.Text.Json (#1928)With* and Without* assertion methods (#1937)RunDefaultMvcValidationAfterFluentValidationExecutes option from ASP.NET integration.Options property from RuleComponent.PropertyValidator backwards compatibility layer.Only() to the test helper asserting that no other validation errors were raised.Binaries can be downloaded from nuget:
Deprecated the ability to disable the root model null check via overriding AbstractValidator.EnsureInstanceNotNull (See #2069 for migration steps)
Please read the upgrade guide if you are moving from 10.x to 11.x
Note that the after 11.1.0 release, the FluentValidation.AspNetCore package has been moved to a separate repository and is now versioned and released separately. These release notes now only apply to the core FluentValidation package. For FluentValidation.AspNetCore release notes, please visit the FluentValidation.AspNetCore repository.
AbstractValidator.OnRuleAdded to allow customization of rule instances after creation (#2114)AbstractValidator.EnsureInstanceNotNull (See #2069 for migration steps)Transform and TransformAsync methods (See #2072 for migration steps)ScalePrecision validator and introduce PrecisionScale validator as its replacement (#2030)StringSyntaxAttribute.Regex in net7 builds (#1957)MemberNameValidatorSelector should make use of PropertyNameResolver when parsing expressions (#2003)Only() not taking into account parent-level unmatched failures (#1986)Include calls with the MemberNameValidatorSelector (#1989)ToDictionary method to ValidationResult (particularly useful when working with Minimal APIs)-InjectValidator (#1960)IValidatorFactory and ServiceProviderValidatorFactory (#1961)services.AddFluentValidationAutoValidation() and services.AddFluentValidationClientsideAdapters() as replacements for services.AddFluentValidation() (#1965)AsyncValidatorInvokedSynchronouslyException being incorrectly thrown when the top-level When method with RuleForEach, even when invoked asynchronously (#1955)ValidationResult using System.Text.Json (#1928)With* and Without* assertion methods (#1937)RunDefaultMvcValidationAfterFluentValidationExecutes option from ASP.NET integration.Options property from RuleComponent.PropertyValidator backwards compatibility layer.Only() to the test helper asserting that no other validation errors were raised.Binaries can be downloaded from nuget:
Resolved issue with combining multiple ValidationResult instances where RuleSetsExecuted wasn't properly set on the combined result
Resolved issue with combining multiple ValidationResult instances where RuleSetsExecuted wasn't properly set on the combined result (#2125)
Add additional constructor for combining multiple ValidationResult instances (#2125) Add PropertyPath placeholder (#2134) Fix Brazilian Portuguese tra
Add additional constructor for combining multiple ValidationResult instances (#2125) Add PropertyPath placeholder (#2134) Fix Brazilian Portuguese translation (#2131)
Add OnFailurecCreated callback in ValidatorOptions.Global (#2120) Fix typo in Russian localization (#2102) Add Tajik language (#2108) Fixed some typos
Add OnFailurecCreated callback in ValidatorOptions.Global (#2120) Fix typo in Russian localization (#2102) Add Tajik language (#2108) Fixed some typos in Validator Extension docblocks (#2118)
Resolve issue with ruleset propogation for multiple levels of child rules
Resolve issue with ruleset propogation for multiple levels of child rules (#2097)
Deprecated the ability to disable the root model null check via overriding AbstractValidator.EnsureInstanceNotNull (#2069) Deprecated the Transform an…
Deprecated the ability to disable the root model null check via overriding AbstractValidator.EnsureInstanceNotNull (#2069) Deprecated the Transform and TransformAsync methods (#2072)
MemberNameValidatorSelector now supports wildcard indexes in property paths (#2056) Added overload of TestValidateAsync that accepts a context (#2052)
MemberNameValidatorSelector now supports wildcard indexes in property paths (#2056) Added overload of TestValidateAsync that accepts a context (#2052) Minor optimization to regex validator (#2035) Added Kazakh translations (#2036) Added Catalan translations and updated Spanish translations (#2050) Updates to Uzbek Latin and Cyrillic translations (#2040/#2041/#2045) Updates to Italian translations (#2039) Updates to French translations (#2065)
Deprecate ScalePrecision validator and introduce PrecisionScale validator as its replacement
Deprecate ScalePrecision validator and introduce PrecisionScale validator as its replacement (#2030)
Annotate string parameters with StringSyntaxAttribute.Regex in net7 builds (#1957) Fixes to SourceLink integration (#2019) Add Uzbek Latin and Cyrilli
Annotate string parameters with StringSyntaxAttribute.Regex in net7 builds (#1957) Fixes to SourceLink integration (#2019) Add Uzbek Latin and Cyrillic languages (#2013) Updates to Danish language (#2012)
MemberNameValidatorSelector should make use of PropertyNameResolver when parsing expressions
MemberNameValidatorSelector should make use of PropertyNameResolver when parsing expressions (#2003)
Fix test helper .Only() not taking into account parent-level unmatched failures
Fix test helper .Only() not taking into account parent-level unmatched failures (#1986)
Resolve issue with unexpected results when with nested Include calls with the MemberNameValidatorSelector (#1989) Add a new Selector Factory for the C
Resolve issue with unexpected results when with nested Include calls with the MemberNameValidatorSelector (#1989) Add a new Selector Factory for the Composite Selector (#1988)
Fix issue with incorrect rulesets being executed in a child validator when combined with ChildRules (#1981) Bulgarian translations of default messages
Fix issue with incorrect rulesets being executed in a child validator when combined with ChildRules (#1981) Bulgarian translations of default messages (#1973)
Added a ToDictionary method to ValidationResult MVC auto validation: Deprecated Implicit validation of child properties (#1960) MVC auto validation: D…
Added a ToDictionary method to ValidationResult MVC auto validation: Deprecated Implicit validation of child properties (#1960) MVC auto validation: Deprecated Implicit validation of root collection elements (#1960) Deprecated InjectValidator (#1960) Deprecate validator factories (#1961) Introduce services.AddFluentValidationAutoValidation() and services.AddFluentValidationClientsideAdapters() as replacements for services.AddFluentValidation() (#1965) Remove duplication between sync and async validation in the internal model.
Fix an issue where an exception would be thrown when calling ValidateAsync if a rule was wrapped with a call to WhenAsync.
Fix an issue where an exception would be thrown when calling ValidateAsync if a rule was wrapped with a call to WhenAsync. (#1955)
Child validator contexts should contain a reference to their parent context (#1945) Support deserialization of ValidationResult using System.Text.Json
Child validator contexts should contain a reference to their parent context (#1945) Support deserialization of ValidationResult using System.Text.Json (#1928)
Fix regression in the Test Helper affecting the With* and Without* assertion methods
Fix regression in the Test Helper affecting the With* and Without* assertion methods (#1937)
…is invoked synchronously (#1705) Removal deprecated OnFailure/OnAnyFailure callbacks. Remove deprecated RunDefaultMvcValidationAfterFluentValidationEx…
Ensure property covariance is properly handled throughout the internal model (#1713) Throw exceptions when async validator is invoked synchronously (#1705) Removal deprecated OnFailure/OnAnyFailure callbacks. Remove deprecated RunDefaultMvcValidationAfterFluentValidationExecutes option from ASP.NET integration. Remove deprecated Options property from RuleComponent. Remove deprecated TestHelper methods. Remove PropertyValidator backwards compatibility layer. Add method Only() asserting that no other validation errors were raised.
Allow use of "*" with RuleSetForClientSideMessagesAttribute and HttpContext.SetRulesetForClientsideMessages (#1912) Fix Azerbaijani language code
Allow use of "*" with RuleSetForClientSideMessagesAttribute and HttpContext.SetRulesetForClientsideMessages (#1912) Fix Azerbaijani language code (#1874)
Fix Azerbaijani language code (#1865) Setting DisableAutomaticValidation to true should prevent implicit validation running (#1868) Enable package val
Fix Azerbaijani language code (#1865) Setting DisableAutomaticValidation to true should prevent implicit validation running (#1868) Enable package validation (#1860)
Fixed ThrowOnFailures not being passed through if context creation requires type conversion (#1863).
Fixed ThrowOnFailures not being passed through if context creation requires type conversion (#1863).
Clientside messages shouldn't be generated for the lazy version of LessThanOrEqual/GreaterThanOrEqual (#1818) Remove enumerable boxing in Empty/NotEmp
Clientside messages shouldn't be generated for the lazy version of LessThanOrEqual/GreaterThanOrEqual (#1818) Remove enumerable boxing in Empty/NotEmpty validators (#1823)
Remove reference type constraint for TestValidate
Remove reference type constraint for TestValidate (#1815)
Nothing published for this version
Fix scale precision error message when digits is calculated as negative (#1790) Shared conditions shouldn't rely on object hashcode for unique ID
Fix scale precision error message when digits is calculated as negative (#1790) Shared conditions shouldn't rely on object hashcode for unique ID (#1810)
Update Russian translations (#1761) Add Thai translations (#1768) Add Azerbaijani translations (#1770) Deprecate the old test helper methods in favour…
Update Russian translations (#1761) Add Thai translations (#1768) Add Azerbaijani translations (#1770) Deprecate the old test helper methods in favour of TestValidate. Deprecate OnFailure and OnAnyFailure callbacks.
Resolve issue with rulesets not cascading correctly to Inheritance Validators
Resolve issue with rulesets not cascading correctly to Inheritance Validators (#1754)
Add backwards compatibility overloads for validator registration methods.
Add backwards compatibility overloads for validator registration methods.
Optional internal type registration should work with MVC registration
Optional internal type registration should work with MVC registration (#1748)
…when scanning assemblies for validators (#1742) Deprecate RunDefaultMvcValidationAfterFluentValidationExecutes in MVC configuration. Use DisableDataAn…
Display name generation should be consistent between RuleForEach and RuleFor.ForEach (#1231) Allow AddFluentValidation to be called directly on IServiceCollection (#1726) Throw exception on ValidateAndThrow even if PreValidate prevents further Validation (#1736) ValidationException now includes rule severity (#1733) Optionally support internal types when scanning assemblies for validators (#1742) Deprecate RunDefaultMvcValidationAfterFluentValidationExecutes in MVC configuration. Use DisableDataAnnotationsValidation instead.
Allow default severity level to be set globally (#1715) Extend use of variance into the internal API to resolve invalid cast exceptions in some scenar
Allow default severity level to be set globally (#1715) Extend use of variance into the internal API to resolve invalid cast exceptions in some scenarios (#1711) Fix clientside metadata being incorrectly generated for cross-property LessThanOrEqual/GreaterThanOrEqual (#1721)
Fix a bug where async conditions were sometimes run synchronously.
Fix a bug where async conditions were sometimes run synchronously.
Fix ArgumentOutOfRangeException when condition returns false for RuleForEach containing multiple components
Fix ArgumentOutOfRangeException when condition returns false for RuleForEach containing multiple components (#1698)
Expose ErrorCode property on IRuleComponent.
Expose ErrorCode property on IRuleComponent.
Add GetPropertyValue method to IValidationRule Fix context parameter types on IValidationRule.ApplyCondition and ApplyAsyncCondition.
Add GetPropertyValue method to IValidationRule<T> Fix context parameter types on IValidationRule.ApplyCondition and ApplyAsyncCondition.
Collection rules now only iterate the collection once. Property validators are now generic. Internal API now uses generics. Deprecated non-generic Pro…
Please review the upgrade guide for 10.0: https://docs.fluentvalidation.net/en/latest/upgrading-to-10.html Performance improvements. Collection rules now only iterate the collection once. Property validators are now generic. Internal API now uses generics. Deprecated non-generic PropertyValidator. Various property validator options have been seperated into RuleComponents. Various parts of the internal API are now internal (PropertyRule, CollectionPropertyRule etc). ValidatorDescriptor now returns rule components in various places. Changed type of ValidationResult.Errors from IList<ValidationFailure> to List<ValidationFailure> Default service lifetime is now Scoped rather than Transient. Combine IActionContextValidatorInterceptor and IValidatorInterceptor. Changes to the ASP.NET Client Validator Adaptor interfaces. These now receive the rule component. Removed deprecated IStringSource and its inheritors. Removed deprecated FormattedMessageArguments from ValidationFailure. Removed other deprecated code.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix Serbian translation of error messages (#1683) Add Vietnamese translations of error messages
Fix Serbian translation of error messages (#1683) Add Vietnamese translations of error messages (#1677)
Fix Swedish translation for CreditCardValidator
Fix Swedish translation for CreditCardValidator (#1664)
Fix Dutch translation of some errors (#1653) Fix string equality comparison in WithCustomState extension
Fix Dutch translation of some errors (#1653) Fix string equality comparison in WithCustomState extension (#1658)
Fix incorrect wording in deprecation message for Transform (#1613) Fix ScalePrecision validator being available in intellisense for non-decimal proper…
Fix incorrect wording in deprecation message for Transform (#1613) Fix ScalePrecision validator being available in intellisense for non-decimal properties. Expose additional overload of Transform that receives the root object in the transformer.
Introduce new syntax for applying transformations and deprecate the old syntax
Introduce new syntax for applying transformations and deprecate the old syntax (#1613)
ChildRules now work as expected when inside a ruleset (#1597) Added ImplicitlyValidateRootCollectionElements option to MVC integration
ChildRules now work as expected when inside a ruleset (#1597) Added ImplicitlyValidateRootCollectionElements option to MVC integration (#1585)
Support for .NET 5 Improvements to LanguageManager's lazy loading of resources. Deprecate IStringSource and its implementors. Use delegates instead. C…
Support for .NET 5 Improvements to LanguageManager's lazy loading of resources. Deprecate IStringSource and its implementors. Use delegates instead. CustomizeValidatorAttribute now works in Razor pages (netcore 3.1 and net 5.0 only) (#1541) RuleSetForClientSideMessagesAttribute now works in Razor pages (netcore 3.1 and net 5.0 only) (#1544) Fixes to Spanish translations.
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →