Castle Windsor有一个类似于StructureMap的ObjectFactory的静态类吗?

时间:2010-09-13 15:24:19

标签: castle-windsor structuremap

我目前正在从StructureMap迁移到Castle Windsor。

使用StructureMap,您可以在一个中心位置引导框架,然后在代码中的任何位置调用ObjectFactory.GetInstance以使用该配置获取实例。因此,从概念上讲,您可以配置一个容器,并且对ObjectFactory的调用使用该容器。

在我见过的Windsor教程中,容器实例始终是显式创建的,并且通过该容器的实例进行解析。这只是两个框架之间方法的差异吗?

假设情况如此,处理需要与配置分开进行解决的情况的推荐方法是什么?

(理想情况下,可以在配置代码之后进行单个Resolve()调用,并且不存在对容器的其他引用;但是,在某些情况下这是不可能的,例如在使用遗留代码库时。 )

3 个答案:

答案 0 :(得分:3)

不,它没有。并且不会。如果您从Structure Map到Castle Windsor,read this

re:如何在没有静态定位器see this的情况下拉动。

答案 1 :(得分:1)

我对Windsor不熟悉,但如果它还没有自己的静态外观类,那么创建自己的类是非常简单的。使用包含已配置容器的静态属性创建静态类。添加一个静态方法,用于解析该容器中的实例。这正是ObjectFactory所做的。 StructureMap有一个Container对象,可以完成所有实际工作 - ObjectFactory只是一个方便的包装器。

答案 2 :(得分:0)

如果你真的需要这个,请使用CommonServiceLocator。它具有适用于所有主要IoC容器的适配器。

相关问题