aspnetBoilerplate中的模块是什么?

时间:2019-04-24 08:30:13

标签: dependency-injection domain-driven-design aspnetboilerplate

aspnetBoilerplate基于域驱动设计设计模式。

see使用aspnetBoilerplate使用模块来组成应用程序。

我不明白什么是模块,searched是在域驱动设计的上下文中定义的,我发现它充当应用程序特定类集的容器。

这是否意味着,例如,在c#名称空间中是一个模块,因为它可以包含许多类?

但是即使有了这个定义,在aspnetBoilerplate的上下文中仍然不清楚,aspnetBoilerplate中的模块定义具有以下结构:

  public class MyBlogApplicationModule : AbpModule
 {
     public override void Initialize()
     {
        IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
     }
  }

所以只有一个类,只有一个方法!

模型和依赖注入之间还有什么关系?

为什么在IocContainer中将模型注册为服务?

1 个答案:

答案 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