DDD之实现领域事件(MediatR)
DDD之实现领域事件(MediatR)
领域事件:在同一个微服务内的聚合之间的事件传递。使用进程内的通信机制完成。
(1)C#的事件机制
var eventClass = new EventClass();
eventClass .事件+=eventClass_事件
eventClass.StartProcess();
缺点:需要显式地注册。
(2)MediatR
进程内消息传递的开源库MediatR。事件的发布和事件的处理之间解耦。MediatR中支持“一个发布者对应一个处理者”和“一个发布者对应多个处理者”这两种模式
- 安装 Install-Package MediatR.Extensions.Microsoft.DependencyInjection
- AddMediatR
- 定义一个在消息的发布者和处理者之间进行数据传递的类,这个类需要实现INotification接口。一般用record类型。
-
消息的处理者要实现NotificationHandler
接口,其中的泛型参数TNotification代表此消息处理者要处理的消息类型。 -
在需要发布消息的的类中注入IMediator类型的服务,然后我们调用Publish方法来发布消息。Send()方法是用来发布一对一消息的,而Publish()方法是用来发布一对多消息的。
- 测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)