MediatR 12.4.0

dotnet add package MediatR --version 12.4.0                
NuGet\Install-Package MediatR -Version 12.4.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="MediatR" Version="12.4.0" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add MediatR --version 12.4.0                
#r "nuget: MediatR, 12.4.0"                
#r 指令可用于 F# Interactive 和多语言笔记本。将其复制到交互式工具或脚本的源代码中以引用包。
// Install MediatR as a Cake Addin
#addin nuget:?package=MediatR&version=12.4.0

// Install MediatR as a Cake Tool
#tool nuget:?package=MediatR&version=12.4.0                

MediatR

CI NuGet NuGet MyGet (dev)

.NET 中的简单中介实现

无依赖的进程内消息传递。

支持请求/响应、命令、查询、通知和事件,同步和异步,通过 C# 泛型变体智能调度。

wiki 中的示例。

安装 MediatR

您应该使用 NuGet 安装 MediatR

Install-Package MediatR

或通过 .NET Core 命令行界面

dotnet add package MediatR

无论是命令还是从包管理器控制台或 .NET Core CLI,都会下载并安装 MediatR 及所有必需的依赖项。

使用仅合约包

要仅引用 MediatR 的合约,它包括

  • IRequest(包括泛型变体)
  • INotification
  • IStreamRequest

将包引用添加到 MediatR.Contracts

该软件包适用于您的MediatR契约与处理器位于不同的组件/项目中的场景。例如,以下场景:

  • API契约
  • GRPC契约
  • Blazor

使用IServiceCollection进行注册

MediatR直接支持 Microsoft.Extensions.DependencyInjection.Abstractions。要注册各种MediatR服务和处理器

services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblyContaining<Startup>());

或使用一个组件

services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly));

这会进行以下注册:

  • IMediator 作为短暂的
  • ISender 作为短暂的
  • IPublisher 作为短暂的
  • IRequestHandler<,> 具体实现作为短暂的
  • IRequestHandler<> 具体实现作为短暂的
  • INotificationHandler<> 具体实现作为短暂的
  • IStreamRequestHandler<> 具体实现作为短暂的
  • IRequestExceptionHandler<,,> 具体实现作为短暂的
  • IRequestExceptionAction<,> 具体实现作为短暂的

这还为您注册了以下开放泛型实现:

  • INotificationHandler<>
  • IRequestExceptionHandler<,,>
  • IRequestExceptionAction<>

要注册行为、流行为、预处理程序和后处理程序

services.AddMediatR(cfg => {
    cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly);
    cfg.AddBehavior<PingPongBehavior>();
    cfg.AddStreamBehavior<PingPongStreamBehavior>();
    cfg.AddRequestPreProcessor<PingPreProcessor>();
    cfg.AddRequestPostProcessor<PingPongPostProcessor>();
    cfg.AddOpenBehavior(typeof(GenericBehavior<,>));
    });

提供额外的开放泛型方法和对显式服务类型的重载。

产品 兼容的以及额外的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET 标准库 netstandard2.0 兼容。 netstandard2.1 已计算。
.NET 框架 net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解有关 目标框架.NET 标准库 的更多信息。

NuGet 包 (1.9K)

显示依赖 MediatR 的前 5 个 NuGet 包

下载
MediatR.Extensions.Microsoft.DependencyInjection

MediatR 为 ASP.NET Core 扩展

MediatR.Extensions.Autofac.DependencyInjection

Autofac-IoC 的扩展,便于使用 MediatR 和 CQRS。

NET6CustomLibrary

开源自定义 dotnet 扩展库

Elsa cuddles

艾尔莎是一套工作流程库和工具,它能在任何.NET Core应用中提供轻量级和高效的工作流程功能。此包提供了由Elsa.Core和其他相关包使用的抽象和模型。如果您引用了其他Elsa包,则无需单独引用此包。

Elsa.Core

艾尔莎是一套工作流程库和工具,它能在任何.NET Core应用中提供轻量级和高效的工作流程功能。此包包含艾尔莎的核心。提示:引用“艾尔莎”包,而不是此包。

GitHub仓库 (167)

展示依赖MediatR的前5个最受欢迎的GitHub仓库

仓库 星数
jasontaylordev/CleanArchitecture
ASP.NET Core的纯净架构解决方案模板
ardalis/CleanArchitecture
纯净架构解决方案模板:ASP.NET Core的纯净架构起点
kgrzybek/modular-monolith-with-ddd
采用领域驱动设计的完整模块化单体应用程序。
dotnet-architecture/eShopOnWeb
由微软支持的示例ASP.NET Core 8.0参考应用程序,演示了具有单体部署模型的分层应用程序架构。从docs文件夹下载电子书PDF。
MassTransit/MassTransit
.NET的分布式应用程序框架
版本 下载 最后更新
12.4.0 400,183 7/23/2024
12.3.0 2,043,542 6/6/2024
12.2.0 14,953,640 11/17/2023
12.1.1 12,364,026 7/10/2023
12.0.1 14,233,958 2/23/2023
11.1.0 11,719,673 11/19/2022
11.0.0 14,428,664 9/30/2022
10.0.1 33,256,258 1/10/2022
10.0.0 841,960 1/6/2022
9.0.0 54,151,700 10/8/2020
8.1.0 10,495,484 7/27/2020
8.0.2 2,217,397 6/30/2020
8.0.1 9,956,901 2/27/2020
8.0.0 8,275,497 12/30/2019
7.0.0 11,869,168 4/30/2019
6.0.0 6,239,973 12/10/2018
5.1.0 2,956,564 7/30/2018
5.0.1 909,838 6/1/2018
5.0.1-alpha-0002 41,136 4/5/2018
5.0.1-alpha-0001 3,434 4/5/2018
4.1.0 1,959,817 3/20/2018
4.0.1 1,028,222 12/4/2017
4.0.0 153,261 11/30/2017
4.0.0-alpha-0002 3,460 11/30/2017
4.0.0-alpha 4,804 11/29/2017
3.0.1 1,350,488 3/7/2017
3.0.0 299,751 1/4/2017
2.1.0 737,075 7/1/2016
2.1.0-beta-19 4,129 5/23/2016
2.0.2 349,478 8/5/2015
2.0.1 5,052 8/5/2015
2.0.0 9,387 8/4/2015
2.0.0-beta-005 5,340 7/2/2015
2.0.0-beta-004 17,490 4/20/2015
2.0.0-beta-003 4,468 4/20/2015
2.0.0-beta-002 3,646 4/19/2015
2.0.0-beta-001 5,868 2/16/2015
1.0.0 58,900 12/16/2014
0.5.0 11,471 7/7/2014
0.4.0 3,962 6/16/2014
0.3.0 4,790 3/20/2014
0.2.0 4,857 3/6/2014
0.1.0 112,656 3/4/2014