MediatR
11,858
Stars
2,175
Forks
287
Watchers
3
Open Issues
NOASSERTION
许可证
C#
语言
2014-03-03
创建时间
2026-11-05
最近更新
项目能做什么
.NET 平台下简单轻量、功能专注的中介者模式(Mediator)实现库。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
MediatR
=======

[](https://www.nuget.org/packages/mediatr)
[](https://www.nuget.org/packages/mediatr)
[](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<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:
```csharp
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 method
阅读完整原文
项目深度分析 AI 生成
MediatR 架构洞察与静态分析 IDE 插件
| 产品构想 | 针对 MediatR 解耦后导致的调用链追踪困难问题,开发针对 Rider/Visual Studio 的代码导航与分析插件,自动可视化 Request-Behavior-Handler 链路及架构规则检测。 |
| 核心功能 | 跳转至所有相关 Handler/Behaviors、管道流向拓扑可视化、缺失 Handler 编译期/实时报警、不合规的行为配置静态检查。 |
| 目标用户 | 重度依赖 MediatR 的 .NET 开发者及中大型开发团队。 |
| 难度/周期 | 中等 · 2-3个月 · 成本:开发机器、JetBrains/VS 开发者账号及插件维护成本。 |
| 收费模式 | 免费增值模式(基础跳转免费,调用图生成与高级架构合规规则集采用单人或企业订阅收费)。 |
| 竞争风险 | JetBrains 等工具链未来可能原生增强对这类模式的支持;开发者的付费意愿有限。 |
| 依据 | 已验证事实(MediatR采用泛型分发与管道机制导致代码间接性增强) |
MediatR 分布式事件与开箱即用 Pipeline 商业扩展包
| 产品构想 | 提供一套经过企业级验证的预制生产级 Behaviors(集成 OpenTelemetry、Polly 重试降级、FluentValidation、事务开箱支持)以及跨进程/分布式 Mediator 桥接套件。 |
| 核心功能 | 一键配置生产级可观测性、自动分布式链路传递、将 in-process notification 无缝路由到 RabbitMQ/Kafka 的扩展机制。 |
| 目标用户 | 追求快速交付生产级 CQRS 架构的中小企业技术负责人与架构师。 |
| 难度/周期 | 低至中等 · 1-2个月 · 成本:极低(主要为开发和维护文档时间)。 |
| 收费模式 | 按项目授权或企业年费支持许可(提供 SLA 与最佳实践更新)。 |
| 竞争风险 | 社区存在较多零散开源实现(如 MassTransit 部分替代),需要具备极强的易用性和开箱即用体验才能吸引买单。 |
| 依据 | AI推测 |
MediatR 性能与APM观测扩展(轻量级运行时探针)
| 产品构想 | 针对高吞吐场景,提供专注 MediatR 管道执行时耗分析、热点 Handler 发现、异常回溯的轻量级探针与仪表盘。 |
| 核心功能 | 无侵入式拦截 MediatR 执行耗时、慢 Handler 告警、内存分配追踪(规避反射/装箱性能瓶颈)、导出 Prometheus/Grafana 模板。 |
| 目标用户 | 高并发系统运维人员、.NET 性能调优专家及企业研发团队。 |
| 难度/周期 | 中等 · 2-3个月 · 成本:服务器测试资源、多版本 .NET 运行时兼容性维护。 |
| 收费模式 | SaaS订阅(托管仪表盘)或企业本地版 Agent 授权许可。 |
| 竞争风险 | 通用 APM(Datadog/Dynatrace)已有部分覆盖,需依赖在.NET生态内足够垂直且低开销来形成壁垒。 |
| 依据 | 尚需验证的假设 |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
相似项目数据正在完善中,暂不展示(避免误导)
项目优势与风险
| 技术成熟度 | 创建于 2014-03-03,近 30 天仍在推送,发布过 33 个 Release |
| 社区活跃 | Star 11,858 / Fork 2,175 / Issue 3(数据支持,可自行核实) |
| 许可证 | NOASSERTION |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。