Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Simple, unambitious mediator implementation in .NET

License

NotificationsYou must be signed in to change notification settings

LuckyPennySoftware/MediatR

Repository files navigation

CINuGetNuGetMyGet (dev)

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 thewiki.

Installing MediatR

You should installMediatR 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 toMediatR.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 withIServiceCollection

MediatR supportsMicrosoft.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 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:

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 atMediatR.io

About

Simple, unambitious mediator implementation in .NET

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors75


[8]ページ先頭

©2009-2025 Movatter.jp