MediatR 14.1.0
MediatR
Simple mediator implementation in .NET
In-process messaging with no dependencies.
Supports request/response, commands, queries, notifications and events, synchronous and async with intelligent dispatching via C# generic variance.
Examples in the wiki.
Installing MediatR
You should install MediatR with NuGet:
Install-Package MediatR
Or via the .NET Core command line interface:
dotnet add package MediatR
Either commands, from Package Manager Console or .NET Core CLI, will download and install MediatR and all required dependencies.
Using Contracts-Only Package
To reference only the contracts for MediatR, which includes:
IRequest(including generic variants)INotificationIStreamRequest
Add a package reference to MediatR.Contracts
This package is useful in scenarios where your MediatR contracts are in a separate assembly/project from handlers. Example scenarios include:
- API contracts
- GRPC contracts
- Blazor
Registering with IServiceCollection
MediatR supports Microsoft.Extensions.DependencyInjection.Abstractions directly. To register various MediatR services and handlers:
services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblyContaining<Startup>());
or with an assembly:
services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly));
This registers:
IMediatoras transientISenderas transientIPublisheras transientIRequestHandler<,>concrete implementations as transientIRequestHandler<>concrete implementations as transientINotificationHandler<>concrete implementations as transientIStreamRequestHandler<>concrete implementations as transientIRequestExceptionHandler<,,>concrete implementations as transientIRequestExceptionAction<,>)concrete implementations as transient
This also registers open generic implementations for:
INotificationHandler<>IRequestExceptionHandler<,,>IRequestExceptionAction<,>
To register behaviors, stream behaviors, pre/post processors:
services.AddMediatR(cfg => {
cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly);
cfg.AddBehavior<PingPongBehavior>();
cfg.AddStreamBehavior<PingPongStreamBehavior>();
cfg.AddRequestPreProcessor<PingPreProcessor>();
cfg.AddRequestPostProcessor<PingPongPostProcessor>();
cfg.AddOpenBehavior(typeof(GenericBehavior<,>));
});
With additional methods for open generics and overloads for explicit service types.
Setting the license key
You can set the license key when registering MediatR:
services.AddMediatR(cfg =>
{
cfg.LicenseKey = "<license key here>";
})
Or if not using Microsoft.Extensions.DependencyInjection:
Mediator.LicenseKey = "<license key here>";
[!TIP] The license key does not need to be set on client applications (such as Blazor WASM). Turn off the license warning by configuring logging in your logging start configuration:
builder.Logging.AddFilter("LuckyPennySoftware.MediatR.License", LogLevel.None);
You can register for your license key at MediatR.io
Showing the top 20 packages that depend on MediatR.
.NET Framework 4.6.2
- MediatR.Contracts (>= 2.0.1 && < 3.0.0)
- Microsoft.IdentityModel.JsonWebTokens (>= 8.14.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
.NET Standard 2.0
- Microsoft.IdentityModel.JsonWebTokens (>= 8.14.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.0)
- MediatR.Contracts (>= 2.0.1 && < 3.0.0)
.NET 10.0
- Microsoft.IdentityModel.JsonWebTokens (>= 8.14.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- MediatR.Contracts (>= 2.0.1 && < 3.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
.NET 9.0
- Microsoft.IdentityModel.JsonWebTokens (>= 8.14.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- MediatR.Contracts (>= 2.0.1 && < 3.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
.NET 8.0
- Microsoft.IdentityModel.JsonWebTokens (>= 8.14.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- MediatR.Contracts (>= 2.0.1 && < 3.0.0)
| Version | Downloads | Last updated |
|---|---|---|
| 14.1.0 | 3 | 03/04/2026 |
| 14.0.0 | 56 | 12/04/2025 |
| 14.0.0-beta-1 | 32 | 11/21/2025 |
| 13.1.0 | 54 | 10/25/2025 |
| 13.0.0 | 379 | 07/04/2025 |
| 12.5.0 | 113 | 04/05/2025 |
| 12.4.1 | 530 | 09/13/2024 |
| 12.4.0 | 306 | 08/03/2024 |
| 12.3.0 | 135 | 06/27/2024 |
| 12.2.0 | 246 | 02/04/2024 |
| 12.1.1 | 121 | 02/09/2024 |
| 12.0.1 | 119 | 07/21/2024 |
| 12.0.0 | 10 | 02/24/2026 |
| 11.1.0 | 130 | 02/04/2024 |
| 11.0.0 | 251 | 02/04/2024 |
| 10.0.1 | 190 | 02/04/2024 |
| 10.0.0 | 128 | 07/21/2024 |
| 9.0.0 | 129 | 02/05/2024 |
| 8.1.0 | 120 | 07/21/2024 |
| 8.0.2 | 126 | 07/21/2024 |
| 8.0.1 | 116 | 07/21/2024 |
| 8.0.0 | 118 | 07/21/2024 |
| 7.0.0 | 121 | 07/21/2024 |
| 6.0.0 | 134 | 07/21/2024 |
| 5.1.0 | 113 | 07/21/2024 |
| 5.0.1 | 118 | 07/21/2024 |
| 5.0.1-alpha-0002 | 122 | 07/21/2024 |
| 5.0.1-alpha-0001 | 112 | 07/21/2024 |
| 4.1.0 | 128 | 07/21/2024 |
| 4.0.1 | 113 | 07/21/2024 |
| 4.0.0 | 120 | 07/21/2024 |
| 4.0.0-alpha-0002 | 131 | 07/21/2024 |
| 4.0.0-alpha | 124 | 07/21/2024 |
| 3.0.1 | 126 | 07/21/2024 |
| 3.0.0 | 117 | 07/21/2024 |
| 2.1.0 | 127 | 07/21/2024 |
| 2.1.0-beta-19 | 121 | 07/21/2024 |
| 2.0.2 | 102 | 07/21/2024 |
| 2.0.1 | 118 | 07/21/2024 |
| 2.0.0 | 110 | 07/21/2024 |
| 2.0.0-beta-005 | 112 | 07/21/2024 |
| 2.0.0-beta-004 | 123 | 07/21/2024 |
| 2.0.0-beta-003 | 112 | 07/21/2024 |
| 2.0.0-beta-002 | 119 | 07/21/2024 |
| 2.0.0-beta-001 | 125 | 07/21/2024 |
| 1.0.0 | 119 | 07/21/2024 |
| 0.5.0 | 123 | 07/21/2024 |
| 0.4.0 | 104 | 07/21/2024 |
| 0.3.0 | 104 | 07/21/2024 |
| 0.2.0 | 111 | 07/21/2024 |
| 0.1.0 | 114 | 07/21/2024 |