MediatR

MediatR

MediatR 是什么

MediatR 是一个轻量级的库,用于实现命令查询职责分离(CQRS)模式和管道行为模式。它通过中介者模式将请求和处理程序解耦,使得代码更加模块化、可测试和易于维护。

核心概念

  1. 请求(Request):
    请求是客户端发出的操作指令,可以是命令(Command)或查询(Query)。
    请求通常包含必要的输入参数。
  2. 处理程序(Handler):
    处理程序负责处理请求并返回结果。
    每个请求类型对应一个处理程序。
  3. 通知(Notification):
    通知是一种广播消息,可以被多个处理程序处理。
    适用于事件驱动的场景。
  4. 管道行为(Pipeline Behaviors):
    管道行为是在请求处理前后执行的中间件。
    用于实现日志记录、事务管理、验证等横切关注点。

使用

  1. 安装包 MediatR

  2. 注册服务

    builder.Services.AddMediatR(cfg=> cfg.RegisterServicesFromAssembly(Assembly.GetExecutingAssembly()));
    
  3. 定义请求或通道数据

    public class TestRequest:IRequest<Tuple<string, long>>, INotification
    {
         
      public string Code {
          get; set; }
    }
    

    TestRequest中的属性为请求或通知的参数
    IRequest 接口用于定义请求,后面的泛型用于定义返回的参数,请求必须实现此接口
    INotification 接口用于定义通知,通知功能必须实现此接口

  4. 定义请求处理程序或定义管道行为
    定义请求处理

    public class TestHandle : IRequestHandler<TestRequest, Tuple<string, long>>
    {
         
      public TestHandle()
      {
         
        Console.WriteLine("Create TestHandle");
      }
      async Task<Tuple<string, long>> IRequestHandler<TestRequest, Tuple<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值