Dpz.Core.Service.Mediator 规范

本项目承载中介者请求与处理器,采用按 Feature 组织的结构,并提供统一管道治理。

1. 依赖方向

系统依赖方向约束如下:

数据访问层 -> 中介者层 -> Service 层 -> 应用层

说明:

  • Service 层可以注入 IMediator 发送复杂业务请求。
  • 中介者处理器不得依赖 Dpz.Core.Service 中的业务接口。
  • 中介者处理器需要数据交互时,应直接注入 IRepository<>(及必要基础组件,如 IFusionCache、消息发布器等)。

2. 目录组织

按 Feature 进行目录划分:

  • 一级目录:业务模块(如 ArticleMarkdownMedia
  • 二级目录:CommandsQueriesEvents
  • 请求与处理器同目录,便于定位与维护

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 与治理管道

这样可确保处理器在运行时可直接使用缓存、消息队列等依赖。

评论加载中...