MediatR 简单入门
MediatR
实现.net中简单的中介者模式
是一个试图让进程内发送消息和处理消息的过程解耦的库。它支持跨平台和.net standart 2.0。支持请求/响应、命令、查询、通知和事件,通过C#通用变量与智能调度同步和异步。
安装MediatR包、
安装 MediatR.Contracts包:引入仅用于MediatR的约定,包含IRequest、INotification、IStreamRequest。当你的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