aspnetBoilerplate基于域驱动设计设计模式。
我see aspnetBoilerplate使用模块组成一个应用程序。
我不明白模块是什么,我searched它在域驱动设计的上下文中的定义,我发现它作为应用程序的一组特定类的容器。
那么这意味着,例如,在c#namespace中是一个模块,因为它可以包含许多类?
但即使有了这个定义,在aspnetBoilerplate的上下文中也不清楚,aspnetBoilerplate中的模块定义具有以下结构:
public class MyBlogApplicationModule : AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}
所以它只是一个类,有一个方法!
模型和依赖注入之间的关系是什么?
为什么在IocContainer中将模型注册为服务?
Abp模块只是一种在同一域/层下组织代码的方式,同时仍然可以配置/与其他模块交互
例如。您的模块是一个单独的库项目,包含某些域逻辑,正确初始化您的模块,您可以将初始化代码放在模块生命周期钩子中
注意:生命周期挂钩中的寄存器DI是与DI服务交互的示例(可能在项目之外配置)
见https://aspnetboilerplate.com/Pages/Documents/Module-System#lifecycle-methods
Abp提供了方便的方法来注册遵循约定的类
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
注意:建议的方法是每个程序集只有一个abp模块
见https://aspnetboilerplate.com/Pages/Documents/Dependency-Injection#registering-dependencies