Asp.Net 核心模块化应用

Asp.Net Core Modular Application

我正在构建 asp.net 核心 2 模块化应用程序,我有一个模块,但现在我要创建另一个模块,我到了需要在两个模块之间建立通信的地步,我需要在模块 B 中使用模块 A 中的模型 class,如何在模块之间没有任何依赖关系的情况下实现这一点 我不想将模型 class 放在共享项目中,也不想在模块之间创建引用。

模块不应该依赖于另一个模块,它只能依赖于合同。一些例子。您有模块 A,接口 IModuleAService 和实现它的 class,ModuleAService。模块 B 需要 IModuleAService 的服务 ModuleBSerice 实现。所以创建单独的程序集:

  • ModuleA.Abstractions:包含 IModuleAService 和其他合同
  • ModuleA:依赖于ModuleA.Abstraction,包含实现IModuleAService
  • 的classModuleAService
  • ModuleB: 取决于ModuleA.Abstraction.

并且在启动时 class 您需要注册所有模块。 IoC 将为您完成所有工作。如果稍后您想将应用程序分成两个,这将很容易。案例你需要 实施代理访问 ModuleA.