首页 > 解决方案 > Asp.Net Core 模块化应用

问题描述

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

标签: asp.netasp.net-core.net-coremodularitymodular-design

解决方案


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

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

在您的启动课程中,您需要注册所有模块。IoC 将为您完成所有工作。如果以后您想将应用程序分成两部分,那将很容易。案例您需要实现代理访问ModuleA


推荐阅读