如何在多台机器上分配IOC / DI组件?

时间:2012-04-18 11:21:33

标签: inversion-of-control structuremap distribution

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

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

1 个答案:

答案 0 :(得分:1)

有趣!理论上我认为这是可能的,真正的基本问题是如果你真的想这样做,我们正在讨论一个重大的架构变化。

免责声明:我不知道你对WCF有多熟悉,我会试着大致解释一下我的想象是否可能,但考虑一下如果我们在谈论你想通过网络进行的这种通信使用WCF。

  • 将要通过网络使用的组件的每个接口定义为WCF服务合同
  • 使用服务包装您的组件并将其托管在某处/某种程度
  • 为这些服务编写客户端,让他们实现组件接口
  • 当代码需要一个组件
  • 时,让StructureMap注入您的客户端

虽然听起来很简单,但相关的复杂性隐藏在这些步骤背后。仅举几个潜在的问题:您要将哪些组件包装到服务中?包装它们有多容易?你要去哪里接待他们,怎么样?安全性怎么样?您的日志记录机制是否需要调整?