EonaCat.Validator 1.0.0

Prefix Reserved
dotnet add package EonaCat.Validator --version 1.0.0
                    
NuGet\Install-Package EonaCat.Validator -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EonaCat.Validator" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EonaCat.Validator" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="EonaCat.Validator" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EonaCat.Validator --version 1.0.0
                    
#r "nuget: EonaCat.Validator, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EonaCat.Validator@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EonaCat.Validator&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=EonaCat.Validator&version=1.0.0
                    
Install as a Cake Tool

EonaCat.Validator

Validate objects fluently using EonaCat.Validator.

public class User
{
    public string Name { get; set; }
    public string Email { get; set; }
    public int Age { get; set; }
    public string Phone { get; set; }
    public DateTime CreatedDate { get; set; }
}
public static class ValidationExamples
{
    public static void ExampleUsage()
    {
        var user = new User
        {
            Name = "",
            Email = "invalid-email",
            Age = -5,
            Phone = "123",
            CreatedDate = DateTime.Now.AddDays(1)
        };

        var result = user.Validate()
            .RuleFor(u => u.Name)
                .NotEmpty("Name is required")
                .MinLength(2, "Name must be at least 2 characters")
            .RuleFor(u => u.Email)
                .NotEmpty("Email is required")
                .EmailAddress("Please provide a valid email address")
            .RuleFor(u => u.Age)
                .GreaterThan(0, "Age must be positive")
                .LessThan(150, "Age seems unrealistic")
            .RuleFor(u => u.Phone)
                .PhoneNumber("Please provide a valid phone number")
            .RuleFor(u => u.CreatedDate)
                .Must(date => date <= DateTime.Now, "Creation date cannot be in the future")
            .Must(u => u.Name != u.Email, "Name and email cannot be the same")
            .Validate();

        if (!result.IsValid)
        {
            Console.WriteLine("Validation failed:");
            Console.WriteLine(result.GetErrorSummary());
        }
    }
}
var user = new User { Name = "", Email = "bad-email", Age = -5 };

var result = user.Validate()
    .RuleFor(u => u.Name).NotEmpty().MinLength(2)
    .RuleFor(u => u.Email).EmailAddress()
    .RuleFor(u => u.Age).GreaterThan(0).LessThan(150)
    .Validate();

if (!result.IsValid)
{
    Console.WriteLine(result.GetErrorSummary());
}
Product Compatible and additional computed target framework versions.
.NET 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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 127 6/29/2025