1

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

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

4

1 回答 1

1

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

免责声明:我不知道您对 WCF 有多熟悉,我将尝试非常粗略地解释一下我认为它是如何可能的,但请考虑,如果我们谈论的是通过网络进行的这种通信,您想使用 WCF。

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

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

于 2012-04-18T13:35:21.647 回答