你的位置:首页 > 软件开发 > ASP.net > [Architect] Abp 原理解析 EventBus

[Architect] Abp 原理解析 EventBus

发布时间:2016-03-11 18:00:10
本节目录原理介绍Abp源码分析代码实现 原理介绍事件总线大致原理:(1) 在事件总线内部维护着一个事件与事件处理程序相映射的字典。(2) 利用反射,事件总线会将实现了IEventHandler的处理程序与 ...

本节目录

  • 原理介绍
  • Abp源码分析
  • 代码实现

 

原理介绍

事件总线大致原理:

(1)       在事件总线内部维护着一个事件与事件处理程序相映射的字典。

(2)       利用反射,事件总线会将实现了IEventHandler的处理程序与相应事件关联到一起,相当于实现了事件处理程序对事件的订阅。

(3)       当发布事件时,事件总线会从字典中找出相应的事件处理程序,然后利用反射去调用事件处理程序中的方法。

 

Abp源码分析

1.AbpKernelModule的Initialize方法

[Architect] Abp 原理解析 EventBus

 

2.EventBusInstaller的Install方法

[Architect] Abp 原理解析 EventBus

 

3.Kernel_ComponentRegistered

[Architect] Abp 原理解析 EventBus

以上将事件注册完成了.

 

剩下就需要如何触发了.

触发实际上是写在代码里的,最终调用的其实还是EventBus.Trigger()

[Architect] Abp 原理解析 EventBus

 

 

代码实现

看完Abp的实现,关键点还是反射以及IoC注册对象事件的拦截.

 

先上实现效果:

  interface IPerson  {    void Say();  }  class Person : IPerson  {    public IEventBus EventBus { get; set; }    public void Say()    {      var str = "Say";      Console.WriteLine(str);      EventBus.Trigger(typeof(SayEventData), this, new SayEventData() { Content = str });    }  }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:[Architect] Abp 原理解析 EventBus

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录