从官网下载ABP项目后,发现一般是有6个程序集,程序集之间是怎么相互关联的呢?这有关ABP的模块系统。
官网上模块的定义如下,模块定义有一个类,该类派生自ABP包中的AbpModule。假设我们正在开发一个可以在不同应用程序中使用的Blog模块。最简单的模块定义如下所示:
public class MyBlogApplicationModule : AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}
如果模块依赖与于其他模块,需要进行显式声明,如下
[DependsOn(typeof(MyBlogCoreModule))]
public class MyBlogApplicationModule : AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}
在这里,我们向ASP.NET Boilerplate声明MyBlogApplicationModule依赖于MyBlogCoreModule,而MyBlogCoreModule应该在MyBlogApplicationModule之前初始化。
ABP可以从启动模块开始递归地解析依赖关系并相应地初始化它们。启动模块初始化为最后一个模块。
官方资料链接:https://aspnetboilerplate.com/Pages/Documents/Module-System