Dpz.Core.Service.Mediator 规范
本项目承载中介者请求与处理器,采用按 Feature 组织的结构,并提供统一管道治理。
1. 依赖方向
系统依赖方向约束如下:
数据访问层 -> 中介者层 -> Service 层 -> 应用层
说明:
- Service 层可以注入
IMediator发送复杂业务请求。 - 中介者处理器不得依赖
Dpz.Core.Service中的业务接口。 - 中介者处理器需要数据交互时,应直接注入
IRepository<>(及必要基础组件,如IFusionCache、消息发布器等)。
2. 目录组织
按 Feature 进行目录划分:
- 一级目录:业务模块(如
Article、Markdown、Media) - 二级目录:
Commands、Queries、Events - 请求与处理器同目录,便于定位与维护
3. 返回模型约定
- 中介者请求的返回类型统一使用
Dpz.Core.Entity.Base.ResponseResult/ResponseResult<T>。 - 边界应用(MVC/API)负责将
ResponseResult映射为具体 HTTP 响应。
4. Pipeline 治理
当前治理管道:
Common/Behaviors/MediatorLoggingBehavior.cs:消息处理日志Common/Behaviors/MediatorPerformanceBehavior.cs:耗时统计与慢请求告警Common/Behaviors/MediatorExceptionWrappingBehavior.cs:异常统一包装为ResponseResult
5. 注册方式
统一在 Dpz.Core.Service/ServiceExtensions.AddBusinessServices 中完成注册。
注册顺序要求:
- 先注册仓储、缓存、消息队列等基础能力
- 再注册 Mediator 与治理管道
这样可确保处理器在运行时可直接使用缓存、消息队列等依赖。
评论加载中...