Pisum.Result.Validation 1.3.0

Pisum.Result.Validation

A validation library that integrates FluentValidation with the Pisum.Result pattern for clean, consistent validation handling in .NET applications.

Features

  • ValidationResult classes - Specialized result types for validation outcomes
  • ValidationPipelineBehavior - Automatic validation in the Pisum.Mediator pipeline
  • FluentValidation integration - Seamless use of FluentValidation validators

Installation

dotnet add package Pisum.Result.Validation

Requirements

Usage

ValidationResult

Create validation results with errors:

using Pisum.Result;
using Pisum.Result.Validation;

// Non-generic validation result
var errors = new[] { new ValidationError("Name is required", "Name") };
ValidationResult result = ValidationResult.WithErrors(errors);

// Generic validation result with a value type
ValidationResult<User> userResult = ValidationResult<User>.WithErrors(errors);

ValidationPipelineBehavior

Register the pipeline behavior in your DI container to automatically validate requests:

services.AddTransient(typeof(IPipelineBehavior<,>), typeof(ValidationPipelineBehavior<,>));

The behavior intercepts requests, runs all registered IValidator<TRequest> implementations, and returns a ValidationResult with errors if validation fails.

FluentValidation Validators

Create validators using FluentValidation:

using FluentValidation;

public sealed class AddUserRequestValidator : AbstractValidator<AddUserRequest>
{
    public AddUserRequestValidator()
    {
        RuleFor(x => x.Name).NotEmpty();
        RuleFor(x => x.Email).NotEmpty().EmailAddress();
    }
}

License

Copyright (c) 2025 pisum.net

No packages depend on Pisum.Result.Validation.

.NET 8.0

.NET 9.0

.NET 10.0

Version Downloads Last updated
1.3.0 2 01/18/2026
1.2.0 10 10/09/2025