架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8126|回复: 1

[.NET Core] ASP.NET Core 使用 MediatR 中介者模式

[复制链接]
发表于 2020-6-19 17:53:28 | 显示全部楼层 |阅读模式
.NET中的简单中介者模式实现,一种进程内消息传递机制(无其他外部依赖)。 支持以同步或异步的形式进行请求/响应,命令,查询,通知和事件的消息传递,并通过C#泛型支持消息的智能调度。

首先,新建一个asp.net core 3.1 项目。

nuget安装:


注册服务,在 Startup 文件 ConfigureServices 方法添加如下:


Request/response 模式

请求响应模式,类似http请求,一问一答模式,但是不同点是,使用 MediatR 该模式,请求者不需要关注响应者是谁,响应者也不需要关注请求者是谁。

新建 PingHandler.cs 文件,代码如下:



我们在控制器中尝试调用,代码如下:

启动项目,访问: https://localhost:5001/ 可以在控制台看到我们输出的日志,如下图:

request.png

Notifications 模式

此模式,其实就是发布订阅,订阅者不需要关注发布者是谁,发布者也不需要关注订阅者是谁。

新建 UserInfo 类,代码如下:


新建 SendEmail 类,订阅用户信息,收到消息后,将给用户发送邮件,代码如下:

新建 InsertDatabase 类,收到消息后,将用户信息存入到数据库,代码如下:


我们通过控制器尝试发送 UserInfo 的消息,代码如下:

尝试访问: https://localhost:5001/ ,发现两个方法都收到我们发送的消息,如下:

userinfo.png

参考文档:https://github.com/jbogard/MediatR/wiki

最后,附上源码:

游客,如果您要查看本帖隐藏内容请回复





上一篇:Angular项目发布问题
下一篇:OpenLDAP 系列(一)LDAP入门介绍
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-6-20 16:13:27 | 显示全部楼层
6666
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-26 07:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表