/Changelog.txt
Plain Text | 617 lines | 536 code | 81 blank | 0 comment | 0 complexity | bd8a760be2c4e6ed0ecb0c0f57523b05 MD5 | raw file
- 9.0 -
- Removed support for netstandard1.1, netstandard1.6 and net45 (net461 still supported)
- Removed support for unsupported .NET Core versions (2.2 and 3.0). LTS versions are supported (2.1 and 3.1)
- Default email validation mode now uses the same logic as ASP.NET Core. Previous regex behaviour is opt-in.
- TestHelper advanced mode now has more features (see https://docs.fluentvalidation.net/en/latest/testing.html#advanced-test-extensions)
- Equal/NotEqual now perform ordinal comparison when used with string properties
- Severity can now be set dynamically with a callback
- Removed WithLocalizedMessage (WithMessage that takes a callback is the replacement)
- Removed ResourceName from ValidationFailure
- Removed ResourceName and ResourceType from IStringSource.
- Removed SetCollectionValidator which was deprecated in 8.0
- Removed DelegatingValidator which was deprecated in 8.x.
- Additional overload of OnAnyFailure that can receive a collection of validation failures
- Remove DisplayAttribute integration and reference to DataAnnotations.
- ComparisonProperty placeholder is now formatted like PropertyName
- Translations of default error messages into other languages are now lazily-loaded
- PropertyValidator.ShouldValidateAsync reanamed to ShouldValidateAsynchronously to remove confusion where the naming suggested this was an async method
- PropertyValidatorContext.Instance renamed to InstanceToValidate for consistency with ValidationContext.
- Removed various methods from MessageFormatter that were deprecated in 8.x
- Added Slovenian translations of default error messages.
- Added Icelandic translations of default error messages.
- Added WithMessageArgument to the test helpers.
- Transform can now be used to transform property values to other types.
- FluentValidationModelValidatorProvider and FluentValidationModelValidator are now public.
- Add additional overload of SetValidator that takes a Func that receives the current property value.
- Work around a bug in ASP.NET Core's integration testing components that can cause ConfigureServices to run multiple times.
- SourceLink integration.
- {CollectionIndex} placeholder can now be accessed in child validators.
- Additional ValidationException constructor that allows using both the default message and a custom one together.
- ScalePrecisionValidator algorithm now matches SQL Server.
- Additional overload of the When methods that contain the validation context.
- 8.6.2 - 29 February 2020
- Fix CollectionIndex placeholder not working with async workflow.
- 8.6.1 - 28 December 2019
- Add explicit netcoreapp3.1 target to ASP.NET Core integration.
- 8.6.0 - 4 December 2019
- Add support for ASP.NET Core 3.1
- Fixed issue with property indexers being incorrectly stripped out when using test extensions.
- AddToModelState no longer includes a dot if PropertyName is null
- 8.5.1 - 2 November 2019
- Ensure lazily loaded calls to WithMessage can be used for client-side validation, provided they don't attempt to access model properties from inside the delegate (eg when using IStringLocalizer).
- Fix issue where OnFailure didn't work properly when invoked on validators with conditions.
- 8.5.0 - 24 September 2019
- Add ASP.NET Core-compatible version of the email address validator.
- Simplify the advanced testhelper syntax.
- Add support for ASP.NET Core 3.
- Add support for defining child rules inline.
- ValidatorDescriptor now has consistent handling of model-level rules.
- RuleForEach can now access collection index in error message with {CollectionIndex} placeholder.
- Welsh language translations of default error messages.
- Hungrian language translations of default error messages.
- Indonesian language translations of default error messages.
- Using RuleForEach combined with When is now more intuitive.
- Fixed order of rule execution when using async validation.
- 8.4.0 - 10 May 2019
- Added simplified version of several messages across all translations to aid with ASP.NET Clientside validation.
- New enum validator for string properties.
- 8.3.0 - 24 April 2019
- Fix issue in ASP.NET Core integration with GetServiceProvider not working correctly when invoked against a CustomContext/MessageBuilderContext.
- Improved how LanguageStringSource works with error-code overrides.
- Fix thread-safety issue with use of PropertyValidatorOptions.Empty (now removed).
- Improved how calls to When/Unless are handled internally.
- DelegatingValidator is now marked as deprecated.
- Improvements to Croatian language translations.
- Improvements to Georgian language translations.
- Resolved subtle bug where top-level WhenAsync wouldn't work correctly when wrapping a top-level call to When.
- 8.2.3 - 12 April 2019
- Fix issue with WebApi integration where DataAnnotations validation could generate duplicate messages when used in the same
- project as FluentValidation.
- 8.2.2 - 5 April 2019
- Fix typo in FluentValidation.DependencyInjectionExtensions package name.
- 8.2.1 - 4 April 2019
- Resolved issue using InjectValidator with RuleForEach.
- Add support for a default IValidatorInterceptor to be registered with the ASP.NET Core Service Provider.
- Added "Without" test extensions for consistency with existing "With" text extensions.
- 8.2.0 - 26 March 2019
- Add extensions for injecting child validators using the ASP.NET Core Service Provider.
- WithLocalizedMessage is deprecated. Use the overload of WithMessage that takes a Func instead.
- Implement RuleFor(...).ForEach(...) as an alternative to RuleForEach
- 8.1.3 - 25 January 2019
- Resolved issue where clientside validation was incorrectly generating metadata for rules with shared conditions.
- ScalePrecisionValidator now has a public method in the fluent interface.
- Fix placeholder names in ScalePrecisionValidator for consistency.
- Updates to Portuguese (Brazil) translations.
- 8.1.2 - 18 December 2018
- Fix the same issue from 8.1.1 but for async conditions.
- Fix issue where shared When/Unless conditions didn't execute correctly when used with RuleForEach.
- 8.1.1 - 11 December 2018
- Added RuleSetsExecuted property to ValidationResult.
- Fix issue with shared condition cache incorrectly caching when used with RuleForEach.
- 8.1.0 - 6 December 2018
- Added format support for message placeholders.
- Added support for overriding indexers for collection rules.
- Allow ErrorCode to be used to override localization key in the Language Manager.
- Additional error details are now shown in the ShouldNotHaveValidationErrorFor test extension.
- Conditions defined with root-level When/WhenAsync/Unless/UnlessAsync are now only executed once (instead of once for each rule).
- Support Otherwise method chained from root-level When/WhenAsync/Unless/UnlessAsync.
- Minor wording changes to default English error messages.
- Added Skip property to MVC5's CustomizeValidatorAttribute to bring parity with AspNetCore and WebApi integration.
- Japanese translation of the default error messages.
- Remove type constraint on the OverridePropertyName overload that takes an expression.
- 8.0.101 - 24 November 2018
- Fix clientside property comparison validation adaptor in ASP.NET Core integration.
- 8.0.100 - 4 September 2018
- Added Greek language translation.
- Resolved an issue where Cascade and Transform couldn't be used with RuleForEach
- 8.0.0 - 16 Aug 2018
- Support validating only specific properties by path.
- Allow specifying a ruleset with SetValidator for complex properties.
- Introduce PropertyValidatorOptions in order to clean up the IPropretyValidator interface.
- Moved the AttributedValidatorFactory into a separate package.
- IStringSource.GetString now takes a context.
- Major cleanup of asynchronous validation workflow.
- Deprecate SetCollectionValidator in favour of RuleForEach().SetValidator
- Remove the pre-7 version of Custom/CustomAsync.
- Removed deprecated localization system.
- Remove deprecated RemoveRule/ReplaceRule/ClearRules methods.
- 7.6.105 - 11 August 2018
- Added Albanian language translations
- Added Chinese Traditional language translation
- Fix #858 ValidationTestExtension.When() incorrectly checks each failure instead of all failures
- 7.6.104 - 6 July 2018
- Added AbstractValidator.PreValidate to allow immediate cancellation of validation.
- 7.6.103 - 16 June 2018
- Using [BindProperty] in AspNetCore now works when implicit child validation is disabled.
- ShouldHaveChildValidator now works when the child validator is inside a DependentRules block.
- Test helpers are now compatible with custom property name resolvers set using ValidatorOptions.PropertyNameResolver.
- Switched to embedded debug symbols.
- 7.6.102 - 14 June 2018
- Fixed a regression where calling ValidateAsync with RuleForEach would no longer execute tasks sequentially (#799).
- 7.6.101 - 13 June 2018
- Added support for RuleForEach to the testing extensions (#238).
- Fixed a regression where calling ValidateAsync with RuleForEach could cause a deadlock (#799).
- Added ToString overrides on ValidationResult to generate a string representation of all errors (#778).
- Updated logos thanks to Dylan Beattie (#780).
- 7.6.100 - 7 June 2018
- Resolved an issue where ValidateAsync was called on child validators when the root validator was invoked synchronously.
- 7.6 - 1 June 2018
- Fix WhenAsync not working properly when calling Validate instead of ValidateAsync
- Upgrade ASP.NET Core integration to ASP.NET Core 2.1
- Include rules now work with explicitly-selected properties.
- Added caching when instantiating validators to obtain clientside metadata
- 7.5.2 - 16 March 2018
- Support multiple rulesets on a rule.
- 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 lazily creates the inner validator.
- Allow replacing the default Error Code resolution process
- 7.5.1 - 11 March 2018
- Support CustomizeValidatorAttribute in WebApi integration
- Resolved issues with referencing FluentValidation from legacy PCLs.
- 7.5 - 26 February 2018
- Better handling of clientside messages when using custom overridden language resources
- 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
- Added Slovak language support
- Added Hebrew language support
- Added Brazilian Portuguese language support
- 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.
- 7.4 - 27 January 2018
- Update DependentRules syntax and mark old syntax as obsolete
- Add workaround for inconsistent behaviour with HttpContext.Items with nonexistent keys in different version of AspNetCore
- Updated ValidationException serialization support
- Add ComparisonProperty to comparison validator message placeholders
- The Test Helper now correctly handles read-only properties
- Add CancellationToken support to ValidateAndThrowAsync and various ValidateAsync overloads
- Introduce MessageBuilderContext to make custom MessageBuilders more useful
- Update Microsoft.AspNetCore.Mvc dependency to 2.0.2
- Update MVC5/WebApi2 AddToModelState extension not to overwrite existing attempted values
- Add SetRulesetForClientsideMessages extension method for MVC5/AspNetCore
- 7.3.4 - 2 January 2018
- Resolved issue in AspNetCore integration where the change made in 7.3.3 meant that child collections were incorrectly skipped for DataAnnotations-based validation, as well as FV
- 7.3.3 - 22 December 2017
- Resolved issue in AspNetCore integration where child collections were incorrectly validated by the ModelValidatorProvider
- 7.3.2 - 21 December 2017
- Added CancellationToken support to child validators
- 7.3 - 13 December 2017
- Major improvements to the AspNetCore integration including better collection support and optional support for implicit validators
- Marked ValidationException as serializable when running on full framework
- Updated EnumValidator's Flags support to handle the ~0 value
- Fixed TestHelper checking for child validator would respond with the wrong type
- Updated translations for some validators and fixed some incorrect language codes
- Fixed overload of WithName that takes a lambda.
- Updated version of the Czech translations
- Added versions of WhenAsync and UnlessAsync that support CancellationTokens
- Simplify calls to DependentRules
- Add Skip property to CustomizeValidatorAttribute in the ASP.NET Core integration
- Updated language translations for various error messages.
- 7.2.1 - 24 October 2017
- Introduce MessageFormatterFactory
- Additional language translations
- Additional checks to ensure HttpContext is registered
- 7.2 - 5 October 2017
- Updated AspNetCore integration to support IValidatableObject
- Updated AspNetCore integration to allow mixing multiple validation strategies in the same model
- Updated AspNetCore integration to work with RulesetForClientsideMessagesAttribute, like MVC5
- Resolved issue with auto generating property names for nested types in the CustomValidator when using AddFailure
- Resolved issue where Custom sync/async invocation caused a NullReferenceException
- Resolved an issue with AspNetCore clientside integration being resolved from the root-level service provider
- Allow string.Empty in OverridePropertyName
- 7.1.1 - 25 July 2017
- Resolved issue where incorrect property name was generated when using RuleForEach combined with SetValidator
- Resolved an issue where nesting async validators inside DependentRules didn't wait for completion
- 7.1 - 28 June 2017
- Merged pull request - improved messages in ShouldHaveChildValidator test extension
- Merged pull request - test helper works with nested properties
- Added additional overload of WithState that accepts a property value
- Fixed StringLengthFluentValidationPropertyValidator generating the wrong comparison values when used in conjunction with the MaxLengthValidator and MinLengthValidator
- *Breaking change* Signature change of PropertyValidator.CustomStateProvider
- Add new RuleFor().Custom validator method as a replacement of the root-level Custom method
- AssemblyScanner now excludes abstract and generic types.
- Resolve issue with InvalidCastException when using lazy WithMessage with RuleForEach
- 7.0.3 - 7 June 2017
- Added missing overload for WithMessage
- Ensure LanguageManager.Culture takes precedence over the current thread's culture
- 7.0.2 - 26 May 2017
- Various fixes to clientside validation in asp.net core
- 7.0.1 - 23 May 2017
- Improve message for MinimumLength and MaximumLength validators in English (other translations would be welcome).
- Added FluentValidationModelValidatorProvider.DisableDiscoveryOfPropertyValidators for backwards compatibility
- 7.0 - 19 May 2017
- Switch to Netstandard based build process
- Deprecated IResourceAccessorBuilder and merged the functionality into LocalizedStringSource
- Deprecated all uses of expression-based localization. Use resourcename/resourcetype instead
- Resolved issue with possible NullReferenceException in the AspNetCore clientside integration for length validators
- Don't clear the ModelValidatorProviders collection by default in the AspNetCore integration (added new ClearValidatorProviders property to control this behaviour)
- Assemblies are now signed
- AssemblyVersion is no longer automatically incremented to avoid binding redirects
- Removed the old FluentValidation.snk and replaced with FluentValidation-dev.snk (nuget releases use a separate snk not stored in git)
- Ensure IValidatorFactory is resolved from request scope in asp.net core integration
- Rewrote the localization support not to require satellite assemblies
- Fix issue in WebApi integration where a property getter that throws an exception causes validation to fail
- Fix issue in AspNetCore integration where we tried to resolve a collection validator in some situations where a class validator should be used
- Improve SplitPascalCase method 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 overridden
- Fix incorrect clientside validation attributes generated for email validator and credit card validator in the asp.net core integration
- Fix child model validation in webapi integration
- 6.4.1 - 15 Mar 2017
- Resolve issue where the accessor cache would incorrectly cache certain expressions on method calls that return members
- Added the ability to disable the accessor cache
- 6.4 - 3 Mar 2017
- AspNetCore support
- Performance improvements for validatior instantiation
- EnumValidator supports Flags
- Add ValidationSeverity
- Add support for collection validators on model-level rules
- Fixes/cleanup to RegexValidator and LengthValidator
- Async validators should run dependent rules
- Clearer exception message when passing a null instance into the root-level Validate method
- Additional overloads and clarity for WithMessage/WithLocalizedMessage overloads
- 6.2.1 - 26 Feb 2016
- Fix DependentRules not working inside a top-level call to When
- Fix enum validator to work correctly with nullable enums
- 6.2 - 22 Feb 2016
- Make ChildValidatorAdaptor.GetValidator public
- Make some of the private methods in FluentValidationModelValdiatorProvider protected instead of private
- ValidatorSelectors are now globally configurable through ValidatorOptions.ValidatorSelectors
- ValidatorSelectors can be overridden within the CustomizeValidatorAttribute
- Added "Include" statement
- Switched "dotnet" nuget library to uap10.0
- Add Enum validator
- 6.1 - 18 Jan 2016
- Overload of ValidateAndThrow supports rulesets.
- Separate PCL to support Universal Win10 apps
- 6.0.2 - 5 Jan 2016
- Fix issue with TestHelper not using correct overload.
- 6.0 - 22 Dec 2015
- Core - Fixed DelegateValidator causes a deadlock when running an async function synchronously.
- Core - Fixed Equal/NotEqual not working with structs
- Core - Additional overload of SetValidator that takes a validatorProvider
- Core - Additional overloads for Length and Matches that take a func for accessing comparison properties
- Core - ValidationContext.IsChildContext is now public
- Core - Add support for non-integer indexers in child collections
- Core - Added Empty and Null validators (opposite of NotEmpty and NotNull)
- Core - Add ErrorCode property
- Core - Add support for Dependent Rules
- Async - Added support for cancellation tokens
- Async - Add support for conditionals
- Async - Allow model-level rules with ValidateAsync
- Localization - added translations for Polish and simple Chinese
- Localization - Fixed name of Czech resource file
- MVC/WebApi - Allow ValidatorAttribute on method parameters
- WebApi - Add support for AddToModelState
- 5.6.2 - 29 May 2015
- RegExValidator can now use a special {RegularExpression} placeholder in its error message.
- Fix two crashes when using the PCL build
- Fix issue with GetAssembly
- 5.6 - 22 May 2015
- Patch - Added properties to Error that can be used to build customized message.
- Fixed issue where setting global resource provider isn't propogated to metadata, breaking client-side messages
- in some situations.
- Patch - allow spaces in credit card numbers
- Added Support model level-rules with RuleFor(x => x)
- Fixed issue with PropertyChain not handling nulls/empty strings properly
- Added support for rule dependencies
- Added ValidatorDescriptor.GetRulesByRuleset
- 5.5 - 30 Oct 2014
- Patch - Added optional RuleSet arguments to the validation test extensions.
- Patch - Support MVC4/5 client-side validation for GreaterThanOrEqualToValidator
- Patch - Support MVC4/5 client-side validation for LessThanOrEqualValidator
- Patch - Remove duplication in Min/MaxFluentValidationPropertyValidator
- Patch - Async validation for ChildCollectionValidatorAdaptor
- Update nuget package for wpa81
- 5.4 - 03 Jul 2014
- * Applied patch - Danish translation
- * Applied patch - Improve DisplayName resolution performance
- * Update WebApi/MVC dependencies
- 5.3 - 27 May 2014
- * Fix issue https://fluentvalidation.codeplex.com/workitem/7183 (email address validation)
- 5.2 - 21 May 2014
- * Added Czech and Finish translation of default error messages
- * Allow nullable target properties for greater/less validators
- * Apply pull request: RuleForEach doesn't respect When condition
- 5.1 - 11 Mar 2014
- * Applied pull request: Apply the same display name resolving to the target property as to the source property.
- * Applied pull request: Allow parent to be passed to child collection validator
- * Applied pull request: Implement Async validation
- * Applied pull request: Split WebApi into separate project
- * Drop support for MVC 3
- 5.0 - 24 Oct 2013
- * Display name is now lazily-loaded by default (as a result, localization via DisplayAttribute now works correctly)
- * Added WebApi integration (contributed by dmorganb)
- * Support for MVC 5 (package names are FluentValidation.Mvc5 and FluentValidation.Mvc5-signed)
- * Remove support for partial trust
- 4.0 - 29 Apr 2013
- * Add portable class library and deprecate the Silverlight-specific projects
- * Added scale precision validator (thanks to Matthew Leibowitz)
- * Added the ability to replace property rules (thanks to Matthew Leibowitz)
- * Added a slightly better value type comparer (thanks to Matthew Leibowitz)
- * Added RuleForEach
- * Additonal overloads of Matches
- * Added MemberAccessor (thanks to Mark Welsh)
- * Fix issue where OverridePropertyName didn't work with SetValidator/SetCollectionValidator
- * Add virtual CreateValidator method in to FluentValidationModelValidatorProvider
- * Add custom error message builder
- * *Breaking* LengthValidator no longer treats null inputs as length 0. This is now consistent with other validators.
- * *Breaking* Change default error messages for Equal/NotEqual validators to use {ComparisonValue} rather than {PropertyValue} for consistency.
- * All validators can now access the current property value inside the error message using {PropertyValue}
- 3.4 - 17 Aug 2012
- * Make ValidationResut.IsValid virtual
- * Add private no-arg ctor to ValidationFailure to help with serialization
- * Add Turkish error messages
- * Work-around for reflection bug in .NET 4.5
- * BREAKING CHANGE - Assemblies are now unsigned.
- 3.3 - 30 March 2012
- * Added additional overload for Must that accepts a PropertyValidatorContext.
- * Allow rules not in a RuleSet to be executed in addition to rules in a ruleset, eg: validator.Validate(instance, ruleSet: "default,MyRuleset");
- * Support Custom rules within top level When conditions.
- * Russian localization
- * MVC4 compatibility
- 3.2 - 14 November 2011
- * Fixed issue #7084 (NotEmptyValidator does not work with EntityCollection<T>)
- * Fixed issue #7087 (AbstractValidator.Custom ignores RuleSets and always runs)
- * Removed support for WP7 for now as it doesn't support co/contravariance without crashing.
- 3.1 - 29 July 2011
- * Support using nullables with cross-property comparisons (GreaterThan/GreaterThanOrEqual/LessThan/LessThanOrEqual)
- * Deprecate and exclude mvc metadata extensions. This is out of scope for FV, but the code for this functionality is still in the repo if anyone still depends on this.
- * Add support for shared conditions based on David Alpert's patch.
- 3.0.0.1 - 5 July 2011
- * Workaround issue caused by referencing DataAnnotations in windows client projects (eg WPF). Does not affect web projects/silverlight.
- 3.0 - 25 June 2011
- * Dropped compatibility for .NET 3.5 and MVC2.
- * Removed the SupportsStandaloneValidation property - this was never properly implemented.
- * Implemented Rule Sets
- * Add support for CustomizeValidatorAttribute when using MVC integration.
- * Remove generic PropertyRule<T> - use non-generic version instead.
- * Better support for custom client-side error messages for LengthValidator.
- * Add support for MVC3's IClientValidatable
- * Implement client-side support for InclusiveBetween validator.
- * Implement client-side support for Equal with cross-property validation.
- * Implement client-side support for email validator.
- * Added credit card validator (plus client side support)
- * Add IValidatorInterceptor interface. This can be used to add pre/post hooks to MVC validation integration. An interceptor can either be specified as part of the CustomizeValidatorAttribute or implemented in the validator.
- * Better handling of nullable value types.
- * Add static FluentValidationModelValidatorProvider.Configure for configuring MVC integration with default options.
- * Fixed edge case where custom property names didn't work for Required rules on non-nullable value types in MVC integration.
- * Patch - Polish localization.
- * Additional overloads of WithLocalizedMessage that support custom format args for consistency with WithMessage.
- * Bug fix - overload for NotEqual that takes an expression and an IEqualityComparer did not use the comparer.
- * Added the ability to specify which ruleset is used to generate client-side rules.
- * Introduced SetCollectionValidator for validating collections (replaces non-generic overload of SetValidator)
- * Better type safety using child collection validators.
- * Better control of which elements in a child collection are validated using the new Where method.
- * Support rules for nested properties at the top level (without needing to use a child validator)
- * Support DisplayAttribute/DisplayNameAttribute for inferring property names
- 2.0 - 13 January 2011
- * Fix typo in the name of FallbackAwareResourceAccessorBuilder
- * Fix issue #7062 - allow validator selectors to work against nullable properties with overridden names.
- * Fix error in German localization.
- * Better support for clientside validation messages.
- 2.0 RC1 - 10 December 2010
- * Allow custom MVC ModelValidators to be added to the FVModelValidatorProvider
- * Support resource provider for custom property validators through the new IResourceAccessorBuilder interface
- * Introduce WithLocalizedName
- * Deprecated WithPropertyName - you should either use WithName or OverridePropertyName.
- * *Breaking change* Rename IErrorMessageSource and its derivatives to IStringSource
- * Updated ASP.NET MVC integration to MVC3 RC2
- 2.0 beta 2 - 9 November 2010
- * Breaking change - Renamed the assembly names for SL/WP7 assemblies to FluentValidation.dll for consistency (formerly FluentValidation.Silverlight and FluentValidation.WP7)
- * Breaking change - Finally removed the FV 1.1 backwards compatibility layer.
- * Breaking chagne - Removed the deprecated Cascade() method - use Cascade(cascadeMode) instead (this was deprecated in 1.3)
- * Provide more useful information in ValidationException error message.
- * FluentValidatorModelMetadataProvider now converts NotNull/NotEmpty validators to IsRequired in metadata.
- * Patch - updated German localization
- * Using a child validator on a collection will now skip items in the collection that are null.
- * NotEmptyValidator can now work against empty collections (must implement ICollection)
- 2.0 beta 1 - October 7 2010
- * AttributedValidatorFactory is finally production worthy with the introduction of InstanceCache
- * Fixed an issue where CascadeMode values are ignored if they're changed after the rules have been defined.
- * Ported FluentValidation to WP7.
- * ShouldHaveChildValidator test helper now works with child collection validators
- * Simplified the implementation of SetValidator.
- * MVC3 integration
- 1.3 - July 26 2010
- * Added non-generic ValidationContext to allow for using Validator Selectors with non-generic IValidator instances
- * Simplified the internal model
- * Patch - Italian language resources
- * Introduced IErrorMessageSource to abstract different mechanisms for building error messages
- * Made ChildValidatorAdaptor public
- * Silverlight build is now signed
- * Allow cascade mode to be set at the validator level.
- * Deprecated Cascade().StopOnFirstFailure() / Cascade().Continue() in favour of Cascade(cascadeMode) for consistency
- * Deprecated PropertyRule.ReplaceCurrentValidator(newValidator) with PropertyRule.ReplaceValidator(originalValidator, newValidator)
- * *Breaking change* Changed default behaviour of When/Unless. They now apply to all previous validators in the chain, not only to the current one. Previous behaviour can be maintained by using the overload that takes an ApplyConditionTo.
- * NotEmpty now considers strings that contain whitespace as invalid.
- * Added ShouldHaveChildValidator(x => x.Property, typeof(SomeChildValidator)) test extension
- * xVal integration supports custom error messages
- * Made IAttributeMetadataValidator public
- 1.2 for SL4 - April 29 2010
- * Ported 1.2 codebase to Silverlight 4.
- 1.2 - March 11 2010
- * Re-enabled MVC1 integration.
- * Tweak ModelValidator behaviour so that all errors are run in one go (again)
- * Added AssemblyScanner.
- * Upgraded to MVC2 RTM.
- 1.2 beta 3 - Feb 14 2010
- * Fixed issue with MVC2 MetaData throwing exceptions.
- * Initial support additional options (such as When/Unless) on child validators. Needs refactoring for next version.
- * Child validators no longer bypass the Validate method on the child validator instance.
- * Tweak ModelValidator behaviour so that all errors are run in one go.
- 1.2 beta 2 - Feb 6 2010
- * Issue #4903 - Allow Name Resolution to be pluggable
- * Changed the .SetValidator method to require an IValidator<TProperty> rather than an IEnumerable<IValidationRule<TProperty>>
- * Removed unnecessary CreateDescriptor overload from AbstractValidator.
- * MVC2 Integration - FluentValidationModelValidatorProvider (serverside & clientside)
- * MVC2 Integration - FluentValidationModelMetadataProvider
- * Removed ComplexPropertyRule / NestedCollectionValidator. Replaced with IPropertyValidator implementations.
- 1.2 beta 1 - Jan 23 2010
- * Upgraded MVC integration to ASP.NET MVC 2
- * Model Binder now works with empty prefixes
- * Added Adam Schroder xVal integration in the new FluentValidation.xValIntegration project (experimental)
- * Allow the validator cascade mode to be set globally. The existing behaviour is the default (Continue). It can now also be set to StopOnFirstFailure:
- ValidationOptions.CascadeMode = ValidatorCascadeMode.StopOnFirstFailure
- * Allow the validator cascade mode to be set at the rule level (overrides the global option):
- RuleFor(x => x.Surname).Cascade().StopOnFirstFailure()
- * User state can be stored along side validation failures.
- * Updated Silverlight project for Silverlight 3.
- * Added the OnAnyFailure method. This delegate will be invoked if any rule attached to a particular RuleBuilder fails.
- * Added ExactLengthValidator (error message needs localising...)
- * Patch - Swedish language resources
- * Added WithPropertyName
- * Patch - InclusiveBetween/ExclusiveBetween validators contributed by Daniel Dyson
- * **Breaking Change** Removed generics from all the IPropertyValidator instances.
- * Introduced PropertyValidator base class
- * **Breaking Change** Removed the ValidationMessageAttribute
- * **Breaking Change** Removed the DefaultResourceManager
- * Simplified PropertyValidatorContext
- * Adding ValidatorFactoryBase to make creation of Validator Factories easier.
- * Additional overload of Custom that can access the current ValidationContext.
- * **Breaking Change** Deprecated and removed the CommonServiceLocator implementation.
- * Removed unnecessary IValidatorOptions interface.
- * Added InlineValidator.
- * Added ValidateAndThrow extension
- 1.1 - Jul 17 2009
- * Spanish resource translations.
- * French resource translations.
- * EmailValidator now uses regex from http://hexillion.com/samples/#Regex
- 1.1 beta 3 - Jun 15 2009
- * Patch - Dutch language resources
- * Deleting the deprecated 'And' operator
- * Major refactoring of the fluent interface.
- * Adding an additional overload of Validate to IValidator<T> that takes an IValidatorSelector.
- * Removing the IValidatorOfProperties interface
- * Moved the methods that were on IValidatorOfProperties to extension methods on IValidator
- * AbstractValidator now holds a collection of PropertyRules directly, rather than storing the intermediate RuleBuilders.
- * Introduced the PropertyModel
- * Marking AbstractValidator.CreateDescriptor as virtual.
- * Adding a protected Rules property to ValidatorDescriptor.
- * Allow a custom message to be definied in the ValidationMessageAttribute in addition to a resource key.
- 1.1 beta 2 - Jun 10 2009
- * Added support for validating nested collections
- * Implemented issue #4446: Additional property values can be accessed from within custom validation messages.
- * *Breaking Change* Validation messages now use custom placeholders such as {PropertyName} rather than {0}, {1} etc. This means that custom validation messages arguments now start at 0.
- * Added a ValidationMessage attribute which can be applied to property validator classes to specify the resource key to use when looking up the error message from the DefaultResourceManager.
- * Now using a more comprehensive regular expression in the EmailValidator.
- 1.1 beta 1 - May 26 2009
- * Validators can now be chained together: RuleFor(person => person.Address).SetValidator(new AddressValidator());
- * Marked the 'And' property as obsolete. It is now possible to chain validators without it. This will be removed in the next release.
- * Introduced ValidatorSelectors which allow certain validators to be excluded/excluded when validation occurs.
- * Initial work on the metadata API (added ValidatorDescriptor).
- * Added some additional marker interfaces to make obtaining metadata easier.
- * Added FluentValidation Model Binder for use with ASP.NET MVC.
- * Added ValidatorAttribute and AttributedValidatorFactory.
- * Added the ability to use a custom ResourceManager in place of the DefaultResourceManager.
- * Assemblies now marked as CLS Compliant.
- * Public fields can now be validated.
- * Made AbstractValidator.AddRuleBuilder public.
- * Added overload for AbstractValidator.Custom that can return multiple ValidationFailures.
- * Fixed issue #4236 - Error message for the 'Equals' validator showed the value entered not what the value should be.
- * Fixed issue with AddToModelState - empty string prefix should be treated the same as a null prefix.
- * Fixed issue with AddToModelState - SetModelValue should be called to ensure ASP.NET MVC's built-in HTML Helpers do not throw NullReferenceExceptions.
- * Fixed issue with email address regex - plus character should be allowed.
- * Fixed issue in Silverlight project - the Resource files were in the wrong namespace.
- 1.0 - Mar 27 2009
- * Support for multiple validators on a single property by using 'And' RuleFor(person => person.Surname).NotNull().And.NotEqual("Foo");
- * Added EqualValidator
- * Custom validation messages are now formatted in the same way as the default messages
- * Assemblies are now signed
- 0.3 - Jan 21 2009
- * Added ShouldNotHaveValidationErrorFor extension method for testing
- * Can now validate specified properties in addition to all properties (eg validator.Validate(person, x => x.Surname, x => x.Forename)
- * New validators (RegularExpressionValidator and EmailValidator) contributed by Liam McLennan
- * German localisation of validation messages contributed by Philipp Sumi
- * Additional overload to 'Must' that takes a Func<T, TProperty, bool>
- 0.2 - Dec 29 2008
- * Added Silverlight compatibility
- * Moved support for the CommonServiceLocator into a separate assembly (FluentValidation.CommonServiceLocator.dll)
- * Adding additional interfaces for some of the validators (ILengthValidator, INotNullValidator)
- * AbstractValidator now implements IEnumerable<IRuleBuilder<T>>
- * Added ShouldHaveValidationError extension method for testing validators
- 0.1 - Nov 1 2008
- * First public preview