如何在多台计算机上分发 IOC/DI 组件



我正在维护一个大型应用程序,该应用程序大量使用StructureMap来加载其组件。我正在尝试将组件拆分,以便它们可以在通过网络连接的不同机器上运行。它们已经在不同的线程中运行,但在同一进程中(使用单个StructureMap容器)。

我不知道该怎么做。是否可以让 StructureMap 自动为所有组件创建代理,并通过网络而不是本地使用它们?需要对组件进行哪些更改才能使其可分发?

有趣!从理论上讲,我想这是可能的,真正的潜在问题是,如果你真的想这样做,我们正在谈论一个重大的架构变化。

免责声明:我不知道您对 WCF 有多熟悉,我将尝试非常粗略地解释我想象的可能,但请考虑如果我们谈论的是您希望使用 WCF 的网络上的这种通信。

  • 将要通过网络使用的组件的每个接口定义为 WCF 服务协定
  • 用服务包装您的组件并将它们托管在某个地方/以某种方式
  • 为这些服务编写客户端,让它们实现组件接口
  • 让 StructureMap 在代码需要组件时注入客户端

虽然听起来很简单,但这些步骤背后隐藏着相关的复杂性。举几个潜在的问题:你要把哪些组件包装到服务中?包装它们有多容易?你打算在哪里托管它们,如何?安全性如何?您的日志记录机制是否需要调整?

最新更新