aspnetBoilerplate基于域驱动设计设计模式。
我see使用aspnetBoilerplate使用模块来组成应用程序。
我不明白什么是模块,searched是在域驱动设计的上下文中定义的,我发现它充当应用程序特定类集的容器。
这是否意味着,例如,在c#名称空间中是一个模块,因为它可以包含许多类?
但是即使有了这个定义,在aspnetBoilerplate的上下文中仍然不清楚,aspnetBoilerplate中的模块定义具有以下结构:
public class MyBlogApplicationModule : AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}
所以只有一个类,只有一个方法!
模型和依赖注入之间还有什么关系?
为什么在IocContainer中将模型注册为服务?
答案 0 :(得分:2)
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