MessageValidation.ImmediateValidations
2.1.0
dotnet add package MessageValidation.ImmediateValidations --version 2.1.0
NuGet\Install-Package MessageValidation.ImmediateValidations -Version 2.1.0
<PackageReference Include="MessageValidation.ImmediateValidations" Version="2.1.0" />
<PackageVersion Include="MessageValidation.ImmediateValidations" Version="2.1.0" />
<PackageReference Include="MessageValidation.ImmediateValidations" />
paket add MessageValidation.ImmediateValidations --version 2.1.0
#r "nuget: MessageValidation.ImmediateValidations, 2.1.0"
#:package MessageValidation.ImmediateValidations@2.1.0
#addin nuget:?package=MessageValidation.ImmediateValidations&version=2.1.0
#tool nuget:?package=MessageValidation.ImmediateValidations&version=2.1.0
MessageValidation.ImmediateValidations
An Immediate.Validations adapter for MessageValidation — bridge source-generated, AOT-friendly, zero-reflection validators into the MessageValidation pipeline.
Installation
dotnet add package MessageValidation.ImmediateValidations
Quick Start
1. Decorate your message
Mark the message type with [Validate], make it partial, and implement IValidationTarget<T>. The Immediate.Validations source generator emits the Validate method at compile time.
using Immediate.Validations.Shared;
[Validate]
public partial record TemperatureReading : IValidationTarget<TemperatureReading>
{
[NotEmpty]
public required string SensorId { get; init; }
[GreaterThanOrEqualTo(-50)]
[LessThanOrEqualTo(150)]
public required double Value { get; init; }
}
2. Register the adapter
builder.Services.AddMessageValidation(options =>
{
options.MapSource<TemperatureReading>("sensors/+/temperature");
});
builder.Services.AddMessageImmediateValidations();
That's it. The pipeline will call the source-generated TemperatureReading.Validate(...) static method for every incoming message — no reflection, no DI lookup per validation, AOT- and trim-friendly.
Why use this adapter?
| Concern | DataAnnotations / FluentValidation | Immediate.Validations |
|---|---|---|
| Reflection at runtime | ✅ Yes | ❌ None |
| AOT / trim compatibility | ⚠️ Partial | ✅ Full |
| Errors caught at compile time | ❌ No | ✅ Yes (analyzers + source gen) |
| Automatic NRT null checks | ❌ No | ✅ Yes |
Requirements
- .NET 10+
- MessageValidation >= 2.0.0
- Immediate.Validations >= 3.3.0
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Immediate.Validations (>= 3.3.0)
- MessageValidation (>= 2.1.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
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 |
|---|---|---|
| 2.1.0 | 81 | 7/16/2026 |