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
- .NET 8.0, .NET 9.0, or .NET 10.0
- Pisum.Result 1.16.0+
- Pisum.Mediator 1.x
- FluentValidation 12.0.0+
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
- FluentValidation (>= 12.0.0)
- Pisum.Mediator (>= 1.6.0)
- Pisum.Result (>= 1.19.0)
.NET 9.0
- FluentValidation (>= 12.0.0)
- Pisum.Mediator (>= 1.6.0)
- Pisum.Result (>= 1.19.0)
.NET 10.0
- FluentValidation (>= 12.0.0)
- Pisum.Mediator (>= 1.6.0)
- Pisum.Result (>= 1.19.0)