领域事件是指:一个领域中出触发的

集成事件是指:多个微服务之前产生的事件

核心对象

IMediator

INotification

INotificationHandler

引入:IMediator 包

第一个示例演示了使用MediatR使用请求/响应类型的操作。它期望对请求做出一些反应。使用 Send 发送 (注意:Send 只会执行一个扫到的Handler类)

IRequest是指请求的响应是布尔响应。现在,需要一个处理程序来处理这种类型的请求。

Send方法

使用 Send 方法,注意注册容器

services.AddMediatR(Assembly.GetExecutingAssembly());

 [HttpPost]
public string Get([FromForm] RequestUser user)
{
_mediator.Send(user);
return "执行了Send";
}
响应体
  public class RequestUser : IRequest<bool> //IRequest<bool> 代表响应是一个 true / false
{
public int UserId { get; set; }
public string UserName { get; set; }
}
请求体 RequestUser 返回一个Bool
  public class UserHandler : IRequestHandler<RequestUser, bool>
{
public Task<bool> Handle(RequestUser request, CancellationToken cancellationToken)
{
System.Console.WriteLine("第一个执行了!");
return Task.FromResult(true);
}
}
可以看到 这里只执行了第一个 (执行第一个找到的)

也可以返回一个实体对象

例如:(注意需要把 RequestUser :IRequest 、、修改为 RequestUser :IRequest 或者 返回值为IList类型 IRequest<IEnumerable> )

还需要实现UserHandler : IRequestHandler<RequestUser, bool> 、、修改为 IRequestHandler<RequestUser, ReponseUser> 或者 返回值为IList类型 IRequestHandler<RequestUser, IEnumerable> 。第一个是请求参数,第二个为响应

public class UserHandler : IRequestHandler<RequestUser, ReponseUser>
{
public Task<ReponseUser> Handle(RequestUser request, CancellationToken cancellationToken)
{
System.Console.WriteLine("第一个执行了!");
return Task.FromResult(true);
}
}
public class ReponseUser
{ }

使用 Publish

Publish 会执行所有的

未完待续!

最新文章

  1. vs2013安装闪退及vs2010 vs2013打开时提示 未能完成的操作 及vs2013安装时出现图片后闪退
  2. cocos2d-x之Box2d初试
  3. ural 1112,LIS
  4. For循环List中删除正确的方式
  5. Stimulsoft Reports报表工具
  6. JQ动画事件
  7. 17.1.1.1 Setting the Replication Master Configuration 设置复制的master 配置:
  8. iis8.0配置 使用备忘 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容
  9. php面向对象1
  10. 不用框架,原生使用python做注册接口/登陆接口/充值接口的测试,做的数据/代码分离
  11. Docker &amp; Consul &amp; Fabio &amp; ASP.NET Core 2.0 微服务跨平台实践
  12. 网络编程-Mysql-1、数据库的启动关闭,创建数据库,表等基本操作
  13. FastDFS客户端与自定义文件存储系统
  14. Java 之 Web前端(五)
  15. IntelliJ IDEA使用教程(简介)
  16. c++ 可变参数模板
  17. 并发编程——ConcurrentHashMap#addCount() 分析
  18. MT【107】立体几何中用阿波罗尼乌斯圆的一道题
  19. Linux Power Managment详解 【转】
  20. Codeforces 496C - Removing Columns

热门文章

  1. 如何让照片中的人物笑起来?HMS Core视频编辑服务一键微笑功能,让人物笑容更自然
  2. 【Java中的线程】java.lang.Thread 类分析
  3. 当我们进行性能优化,我们在优化什么(LightHouse优化实操)
  4. Java核心知识体系3:异常机制详解
  5. Educational Codeforces Round 132 (Rated for Div. 2)
  6. MySQL查询性能优化七种武器之索引下推
  7. C++ 对于函数名的操作,函数名本身和取*以及取&amp;的区别
  8. MySQL递归查询语法
  9. ubuntu 安装及配置Apache
  10. KingbaseES V8R6集群同步模式synchronous参数配置详解