做网站上的在线支付怎么做,中国机械工业网,网站开发要求有哪些,做网站用哪个服务器好文章目录 概述如何使用如何发布消息如何进行消息监听 来源 概述
事件总线是对发布-订阅模式#xff08;观察者#xff09;的一种实现#xff0c;是一种集中式事件处理机制#xff0c;允许不同的组件之间进行彼此通信而又不需要相互依赖#xff0c;达到一种解耦的目的。
… 文章目录 概述如何使用如何发布消息如何进行消息监听 来源 概述
事件总线是对发布-订阅模式观察者的一种实现是一种集中式事件处理机制允许不同的组件之间进行彼此通信而又不需要相互依赖达到一种解耦的目的。
什么是“总线”一个集中式的事件处理机制。同时服务多个事件和多个观察者。相当于一个介于Publisher和Subscriber中间的桥梁。它隔离了Publlisher和Subscriber之间的直接依赖接管了所有事件的发布和订阅逻辑并负责事件的中转。 .NET 开发的轻量级消息总线 EventBus这是一个参照 Java Spring 中的 ApplicationContext.publish(message) 的方法实现的事件总线。
直接使用 Nuget 安装即可开箱即用。
如何使用
如何发布消息
首先需要定义一个事件, 如下
///summary
///控制台启动后的事件
////summary
public class ConsoleStarted:Reface.EventBus.Event {
public ConsoleStarted(objectsource):base(source){ Console.WriteLine(控件台启动完毕); }
}在控制台启动后触发事件
class Program { static void Main(string[]args)
{ //构造事件总线IEventBuseventBusnew DefaultEventBus();//发布消息 eventBus.Publish(new ConsoleStarted()); } }如何进行消息监听
实现 IEventListener 即可成为监听者
using ConsoleApp1.Events;
using Reface.EventBus;
namespace ConsoleApp1.Listeners { public class OnConsoleStarted:IEventListenerConsoleStarted {
public void Handle(ConsoleStartedevent) { Console.WriteLine(ConsoleStarted); } } }EventBus 和 IOC/DI 组件集成可以免去对监听者一一注册的过程。 在 .NetCore 中通过为 ServiceCollection 注册必要组件和按程序集注册监听器可以实现这些功能
var providernew ServiceCollection() .AddEventBus()
//添加EventBus功能
.AddEventListeners(this.GetType().Assembly) .AddEventListeners(typeof(IService).Assembly) .BuildServiceProvider(); IEventBuseventBusprovider.GetServiceIEventBus(); eventBus.Publish(newTestEvent());来源
事件总线EventBus 基于 C# 开源的轻量级事件总线