# MediatR **Repository Path**: mirrors_sync/MediatR ## Basic Information - **Project Name**: MediatR - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-16 - **Last Updated**: 2026-02-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README MediatR ======= ![CI](https://github.com/LuckyPennySoftware/MediatR/workflows/CI/badge.svg) [![NuGet](https://img.shields.io/nuget/dt/mediatr.svg)](https://www.nuget.org/packages/mediatr) [![NuGet](https://img.shields.io/nuget/vpre/mediatr.svg)](https://www.nuget.org/packages/mediatr) [![MyGet (dev)](https://img.shields.io/myget/mediatr-ci/v/MediatR.svg)](https://myget.org/gallery/mediatr-ci) 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](https://github.com/LuckyPennySoftware/MediatR/wiki). ### Installing MediatR You should install [MediatR with NuGet](https://www.nuget.org/packages/MediatR): 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](https://www.nuget.org/packages/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()); ``` or with an assembly: ``` services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly)); ``` This registers: - `IMediator` as transient - `ISender` as transient - `IPublisher` as transient - `IRequestHandler<,>` concrete implementations as transient - `IRequestHandler<>` concrete implementations as transient - `INotificationHandler<>` concrete implementations as transient - `IStreamRequestHandler<>` concrete implementations as transient - `IRequestExceptionHandler<,,>` concrete implementations as transient - `IRequestExceptionAction<,>)` concrete implementations as transient This also registers open generic implementations for: - `INotificationHandler<>` - `IRequestExceptionHandler<,,>` - `IRequestExceptionAction<,>` To register behaviors, stream behaviors, pre/post processors: ```csharp services.AddMediatR(cfg => { cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly); cfg.AddBehavior(); cfg.AddStreamBehavior(); cfg.AddRequestPreProcessor(); cfg.AddRequestPostProcessor(); 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: ```csharp services.AddMediatR(cfg => { cfg.LicenseKey = ""; }) ``` Or if not using Microsoft.Extensions.DependencyInjection: ```csharp Mediator.LicenseKey = ""; ``` > [!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](https://mediatr.io)