我正在构建asp.net core 2模块化应用程序,我有一个模块,但是现在我要创建另一个模块,我要指出的是,我需要在两个模块之间建立通信,我需要使用模块B中模块A的模型类,如何在模块之间没有任何依赖的情况下实现这一目标 我不想将模型类放在共享项目中,也不想在模块之间创建引用。
答案 0 :(得分:1)
模块不应依赖于其他模块,而只能依赖于合同。一些例子。您拥有带有界面A
的模块IModuleAService
和实现该模块的类ModuleAService
。模块B
为其服务ModuleBSerice
实现IModuleAService
。因此,创建单独的程序集:
ModuleA.Abstractions
:包含IModuleAService
和其他合同ModuleA
:取决于ModuleA.Abstraction
,包含实现ModuleAService
IModuleAService
ModuleB
:取决于ModuleA.Abstraction
。在启动课程时,您需要注册所有模块。 IoC会为您做所有工作。如果以后您想将应用程序分成两个部分,这将很容易。满足您的需求
实施代理以访问ModuleA
。