DSoftStudio.Mediator.FluentValidation
1.0.8
Prefix Reserved
dotnet add package DSoftStudio.Mediator.FluentValidation --version 1.0.8
NuGet\Install-Package DSoftStudio.Mediator.FluentValidation -Version 1.0.8
<PackageReference Include="DSoftStudio.Mediator.FluentValidation" Version="1.0.8" />
<PackageVersion Include="DSoftStudio.Mediator.FluentValidation" Version="1.0.8" />
<PackageReference Include="DSoftStudio.Mediator.FluentValidation" />
paket add DSoftStudio.Mediator.FluentValidation --version 1.0.8
#r "nuget: DSoftStudio.Mediator.FluentValidation, 1.0.8"
#:package DSoftStudio.Mediator.FluentValidation@1.0.8
#addin nuget:?package=DSoftStudio.Mediator.FluentValidation&version=1.0.8
#tool nuget:?package=DSoftStudio.Mediator.FluentValidation&version=1.0.8
DSoftStudio.Mediator.FluentValidation
FluentValidation integration for DSoftStudio.Mediator. Provides automatic request validation via a pipeline behavior that resolves IValidator<T> instances from DI and short-circuits on failure.
Features
- Automatic validation — All requests with registered validators are validated before reaching the handler
- Multiple validators — Supports multiple validators per request type, all errors are aggregated
- Structured errors —
MediatorValidationExceptionwith typed error details for easy API response mapping - Zero configuration — Register once, validates everywhere
Installation
dotnet add package DSoftStudio.Mediator.FluentValidation
Quick Start
Define a validator:
public class CreateUserValidator : AbstractValidator<CreateUser>
{
public CreateUserValidator()
{
RuleFor(x => x.Name).NotEmpty();
RuleFor(x => x.Email).EmailAddress();
}
}
Register the validation pipeline behavior and your validators at startup:
services
.AddMediator()
.RegisterMediatorHandlers()
.AddMediatorFluentValidation()
.PrecompilePipelines();
// Register validators — choose one of the approaches below
Registering Validators
Option 1 — Manual registration (AOT-compatible)
services.AddScoped<IValidator<CreateUser>, CreateUserValidator>();
Option 2 — Assembly scanning (requires FluentValidation.DependencyInjectionExtensions)
dotnet add package FluentValidation.DependencyInjectionExtensions
services.AddValidatorsFromAssembly(typeof(Program).Assembly);
Note:
FluentValidation.DependencyInjectionExtensionsuses reflection-based assembly scanning, which is not compatible with NativeAOT / trimming.
Validation runs automatically — if validation fails, a MediatorValidationException is thrown before the handler executes.
Error Handling
try
{
await mediator.Send(new CreateUser("", "invalid"));
}
catch (MediatorValidationException ex)
{
// ex.Errors contains structured validation errors
foreach (var error in ex.Errors)
Console.WriteLine($"{error.PropertyName}: {error.ErrorMessage}");
}
Documentation
License
| Product | Versions 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. |
-
net8.0
- DSoftStudio.Mediator (>= 1.2.0)
- FluentValidation (>= 12.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.