MediatR 12.4.1
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)INotification
IStreamRequest
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:
IMediator
as transientISender
as transientIPublisher
as 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.
Showing the top 20 packages that depend on MediatR.
Packages | Downloads |
---|---|
MediatR.Behaviors.Authorization
A simple request authorization package that allows you to build and run request specific authorization requirements before your request handler is called.
|
6 |
MediatR.Behaviors.Authorization
A simple request authorization package that allows you to build and run request specific authorization requirements before your request handler is called.
|
7 |
MediatR.Behaviors.Authorization
A simple request authorization package that allows you to build and run request specific authorization requirements before your request handler is called.
|
9 |
MediatR.Behaviors.Authorization
A simple request authorization package that allows you to build and run request specific authorization requirements before your request handler is called.
|
13 |
MediatR.Extensions.Microsoft.DependencyInjection
MediatR extensions for ASP.NET Core
|
6 |
MediatR.Extensions.Microsoft.DependencyInjection
MediatR extensions for ASP.NET Core
|
7 |
MediatR.Extensions.Microsoft.DependencyInjection
MediatR extensions for ASP.NET Core
|
8 |
MediatR.Extensions.Microsoft.DependencyInjection
MediatR extensions for ASP.NET Core
|
10 |
MediatR.Extensions.Microsoft.DependencyInjection
MediatR extensions for ASP.NET Core
|
15 |
.NET 6.0
- MediatR.Contracts (>= 2.0.1 && < 3.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
.NET Standard 2.0
- MediatR.Contracts (>= 2.0.1 && < 3.0.0)
- Microsoft.Bcl.AsyncInterfaces (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
Version | Downloads | Last updated |
---|---|---|
12.4.1 | 9 | 22.09.2024 |
12.4.0 | 6 | 22.09.2024 |
12.3.0 | 3 | 09.12.2024 |
12.2.0 | 10 | 01.03.2024 |
12.1.1 | 6 | 22.09.2024 |
12.0.1 | 8 | 22.09.2024 |
11.1.0 | 0 | 19.11.2022 |
11.0.0 | 6 | 22.09.2024 |
10.0.1 | 12 | 13.03.2024 |
10.0.0 | 7 | 22.09.2024 |
9.0.0 | 7 | 22.09.2024 |
8.1.0 | 6 | 22.09.2024 |
8.0.2 | 6 | 22.09.2024 |
8.0.1 | 0 | 27.02.2020 |
8.0.0 | 9 | 22.09.2024 |
7.0.0 | 7 | 22.09.2024 |
6.0.0 | 7 | 22.09.2024 |
5.1.0 | 6 | 22.09.2024 |
5.0.1 | 6 | 22.09.2024 |
5.0.1-alpha-0002 | 6 | 22.09.2024 |
5.0.1-alpha-0001 | 8 | 22.09.2024 |
4.1.0 | 8 | 22.09.2024 |
4.0.1 | 9 | 22.09.2024 |
4.0.0 | 7 | 22.09.2024 |
4.0.0-alpha-0002 | 0 | 30.11.2017 |
4.0.0-alpha | 5 | 22.09.2024 |
3.0.1 | 6 | 22.09.2024 |
3.0.0 | 10 | 22.09.2024 |
2.1.0 | 7 | 22.09.2024 |
2.1.0-beta-19 | 0 | 23.05.2016 |
2.0.2 | 1 | 10.12.2024 |
2.0.1 | 0 | 05.08.2015 |
2.0.0 | 8 | 22.09.2024 |
2.0.0-beta-005 | 0 | 02.07.2015 |
2.0.0-beta-004 | 7 | 22.09.2024 |
2.0.0-beta-003 | 0 | 20.04.2015 |
2.0.0-beta-002 | 6 | 22.09.2024 |
2.0.0-beta-001 | 6 | 22.09.2024 |
1.0.0 | 6 | 22.09.2024 |
0.5.0 | 8 | 22.09.2024 |
0.4.0 | 7 | 22.09.2024 |
0.3.0 | 1 | 06.12.2024 |
0.2.0 | 0 | 06.03.2014 |
0.1.0 | 6 | 22.09.2024 |