Windsor可以与另一个IoC容器合作吗?

时间:2011-05-13 06:03:31

标签: dependency-injection castle-windsor

在我们的应用程序的核心,我们使用Castle Windsor来管理我们的依赖项。我们将从第三方加载插件,这些插件可能正在使用他们自己的IoC容器。我们希望他们能够从核心接收依赖关系,例如通过构造函数注入核心的服务,还可以从自己的IoC容器中接收依赖项。

似乎他们提供了服务提供者接口,Windsor可以使用它来解决未知的依赖关系,忽略结果(因为这些组件的生命周期是其他人的业务)并继续卡车运输。

但是我也相信当你尝试这样的事情时会出现一些微妙的细微之处。

1 个答案:

答案 0 :(得分:6)

这不是必要的。如果您启用这些插件以使用构造函数注入从主机应用程序获取适当的服务,Castle Windsor可以正确连接PlugIn。 PlugIns只是使用构造函数注入作为静态声明依赖的一种方式,因此只要Windsor可以解析依赖关系,PlugIn就会收到它。

每个PlugIn内部发生的事情(包括使用其他容器)与主机应用程序无关。