Myce.FluentValidator
1.1.2
See the version list below for details.
dotnet add package Myce.FluentValidator --version 1.1.2
NuGet\Install-Package Myce.FluentValidator -Version 1.1.2
<PackageReference Include="Myce.FluentValidator" Version="1.1.2" />
<PackageVersion Include="Myce.FluentValidator" Version="1.1.2" />
<PackageReference Include="Myce.FluentValidator" />
paket add Myce.FluentValidator --version 1.1.2
#r "nuget: Myce.FluentValidator, 1.1.2"
#:package Myce.FluentValidator@1.1.2
#addin nuget:?package=Myce.FluentValidator&version=1.1.2
#tool nuget:?package=Myce.FluentValidator&version=1.1.2
MYCE.FluentValidator
MYCE (Makes Your Coding Easier) FluentValidator is a fluent validation library designed to simplify entity validation in .NET applications.
Supports net6.0, net8.0, net9.0, and netstandard2.0.
Installation
Package Manager Console:
Install-Package Myce.FluentValidator
Features
- FluentValidator: Fluent validation class for entities
- ValidatorBuilder: Orchestrates multiple validations in a single process
Usage
1. Create your Entity
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
public string Code { get; set; }
}
2. Define Validation Rules
Use the FluentValidator to define rules for your entity properties.
var person = new Person { Name = "John Doe", Age = 30, Email = "john.doe@example.com", Code = "A123" };
var validator = new FluentValidator<Person>();
.RuleFor(x => x.Name)
.IsRequired()
.MinLength(3)
.MaxLength(50)
.RuleFor(x => x.Age)
.IsGreaterThanOrEqualTo(18)
.IsLessThanOrEqualTo(100)
.RuleFor(x => x.Email)
.IsRequired()
.IsValidEmailAddress()
.RuleFor(x => x.Code)
.ExactNumberOfCharacters(4)
.ContainsOnlyNumber();
var result = validator.Validate(person);
if (validator.Messages.Any())
{
foreach (var message in validator.Messages)
{
Console.WriteLine(message.Text);
}
}
Supported Validators
| Validator | Description |
|---|---|
Contains |
Validates that the value exists within a provided collection. |
ContainsOnlyNumber |
Validates that a string contains only numeric characters. |
ExactNumberOfCharacters |
Validates that a string has an exact length. |
ExactNumberOfCharactersIf |
Validates exact length if a condition is true. |
IsEqualTo |
Validates equality to a specific value. |
IsGreaterThan |
Validates that the value is greater than a specified value. |
IsGreaterThanOrEqualTo |
Validates that the value is greater than or equal to a specified value. |
IsLessThan |
Validates that the value is less than a specified value. |
IsLessThanOrEqualTo |
Validates that the value is less than or equal to a specified value. |
IsNotEqualTo |
Validates if the property value is not equal to a fixed value. |
IsRequired |
Validates that the property is not null or empty. |
IsRequiredIf |
Validates that the property is required if a condition is true. |
IsNotNull |
Validates if the property value is not null. |
IsNull |
Validates if the property value is null. |
IsValidDate |
Validates that a string can be parsed as a valid date. |
IsValidEmailAddress |
Validates that a string is a valid email format. |
MaxLength |
Validates the maximum length of a string. |
MaxLengthIf |
Validates maximum length if a condition is true. |
MinLength |
Validates the minimum length of a string. |
MinLengthIf |
Validates minimum length if a condition is true. |
Notes
- Version 1.1.1 adds new validators:
IsNotNull, andIsNull. - Version 1.1.0 introduces multi-targeting support (
net6.0,net7.0,net8.0,net9.0, andnetstandard2.0) and full nullability support. - Version 1.0.0 was the initial release of Myce.FluentValidator, providing basic validation capabilities for .NET applications.
Dependencies
- Myce.Extensions
- Myce.Response
Contributions
Contributions are welcome! If you have a validation method you think is useful and can make life easier for other developers, please create a Pull Request and submit it. Attention: All submitted methods must include a unit test.
Developed by Fernando Prass
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Myce.Extensions (>= 1.0.1)
- Myce.Response (>= 1.0.2)
-
net6.0
- Myce.Extensions (>= 1.0.1)
- Myce.Response (>= 1.0.2)
-
net7.0
- Myce.Extensions (>= 1.0.1)
- Myce.Response (>= 1.0.2)
-
net8.0
- Myce.Extensions (>= 1.0.1)
- Myce.Response (>= 1.0.2)
-
net9.0
- Myce.Extensions (>= 1.0.1)
- Myce.Response (>= 1.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.