看eShopOnContainers学一个EventBus (3)

要实践这个InMemoryEventBus,那么还需要 一个,IntegrationEvent的子类和一个IIntegrationEventHandler<T>的实现类,这些都不难,例如我们做一个添加用户的事件,A在添加用户后,发起一个事件并将新用户的名字作为事件数据,B去订阅事件,并在自己的处理器中处理名字信息。

思路是这样的:

写一个 AddUserEvent:IntegrationEvent,里面有一个UserId和一个UserName。

写一个AddUserEventHandler:IIntegrationEventHandler<AddUserEvent>,在Handle方法中输出UserId和Name到日志。

注册DI,你要注册下面这些服务:

IEventBus=>InMemoryEventBus ISubscriptionsManager=>InMemorySubscriptionsManager AddUserEventHandler=>AddUserEventHandler

在Startup中为刚刚写的时间和处理器添加订阅(在这里已经可以获取到IEventBus实例了)

写一个Api接口或是什么,调用IEventBus的Publish方法,new 一个新的AddUserEvent穿进去。

OK!到这里一个切实可用的InMemoryEventBus就可以使用了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywxxp.html