MediatR 简单入门

发布时间 2023-03-28 11:15:44作者: 开心的菜鸟程序猿

MediatR

实现.net中简单的中介者模式

是一个试图让进程内发送消息和处理消息的过程解耦的库。它支持跨平台和.net standart 2.0支持请求/响应、命令、查询、通知和事件,通过C#通用变量与智能调度同步和异步

 

安装MediatR包、

安装 MediatR.Contracts包:引入仅用于MediatR的约定,包含IRequestINotificationIStreamRequest。当你的MediatR contracts 在不同的程序集或项目中进行处理的时候,这个包非常有用

 

注册MediatR

services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblyContaining<Startup>());

 

services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly));

 

MediatR有两种分发消息的模式:

request/response模式:只派发消息给一个处理程序

notification模式:派发消息给多个处理程序

 

notification模式:
①创建消息类继承INotification,若不对消息进行修改,建议用record类型; 

②创建一个或多个handler类继承INotificationHandler<T>T表示它要处理的消息类型;实现继承接口的Handle方法;

③通过IMediator 发布消息:await mediator.Publish(new T());

 

参考资料:GitHub - jbogard/MediatR: Simple, unambitious mediator implementation in .NET

Home · jbogard/MediatR Wiki · GitHub