【问题标题】:What are Modules in aspnetBoilerplate?aspnetBoilerplate 中的模块是什么?
【发布时间】:2019-09-13 11:45:00
【问题描述】:

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

see 那个 aspnetBoilerplate 使用 modules 组成一个应用程序。

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

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

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    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

    【讨论】:

    • 注意:推荐的方法是每个程序集只有一个 abp 模块这是什么意思?
    • 首先,程序集通常是项目生成的dll或exe。例如abp asp net core assembly只包含一个abp模块,即AbpAspNetCoreModule
    • 我收到了response on aspnetBoilerplate's Github。每个项目都被视为一个程序集。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 2015-10-24
    • 2010-09-16
    相关资源
    最近更新 更多