Asp.Net核心模块化应用

时间:2018-12-03 11:07:05

标签: asp.net asp.net-core .net-core modularity modular-design

我正在构建asp.net core 2模块化应用程序,我有一个模块,但是现在我要创建另一个模块,我要指出的是,我需要在两个模块之间建立通信,我需要使用模块B中模块A的模型类,如何在模块之间没有任何依赖的情况下实现这一目标 我不想将模型类放在共享项目中,也不想在模块之间创建引用。

1 个答案:

答案 0 :(得分:1)

模块不应依赖于其他模块,而只能依赖于合同。一些例子。您拥有带有界面A的模块IModuleAService和实现该模块的类ModuleAService。模块B为其服务ModuleBSerice实现IModuleAService。因此,创建单独的程序集:

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

在启动课程时,您需要注册所有模块。 IoC会为您做所有工作。如果以后您想将应用程序分成两个部分,这将很容易。满足您的需求 实施代理以访问ModuleA