Abp是一种基于模块化设计的思想构建的。开发人员可以将自定义的功能以模块(module)的形式集成到ABP中。具体的功能都可以设计成一个单独的Module。Abp底层框架提供便捷的方法集成每个Module。
AbpModule
在 Abp
项目下的 Abp.Modules
文件夹下定义了抽象类 AbpModule
,它提供了两个受保护的属性和四个虚方法:
1 | /// <summary> |
DependsOnAttribute
AbpModule
还提供 FindDependedModuleTypes
方法,获取使用 DependsOnAttribute
属性的Module
集合:
AbpModuleManager
Abp.Modules
文件夹下定义了 AbpModuleManager
类,来管理 ABPModule
:
AbpModuleCollection
AbpModuleCollection
类继承 List<AbpModuleInfo>
:
AbpModuleManager
得到所有的 AbpModule
的 AbpModuleInfo
以后,逐个调用这些 Module
的 PreInitialize
,Initialize
和 PostInitialize
以完成初始化:
1 | public virtual void StartModules() |
AbpKernelModule
Abp底层框架的一些功能模块的类型通过 AbpKernelModule
实现:
参考: