是否有必要“按请求”实例配置StructureMap?

时间:2010-09-28 17:17:23

标签: structuremap

我正在调整最初为Windsor编写的一些代码以使用StructureMap。在Windsor示例中,我们释放了处理程序。是否有必要对“按请求”缓存的StructureMap实例执行此操作?代码是:

        foreach (var handler in ObjectFactory.GetAllInstances<IHandle<TEvent>>()) {
            handler.Handle(@event);
            // do I need to dispose here?
        }
        // or should I do this: 
        ObjectFactory.EjectAllInstancesOf<IHandle<TEvent>>();

由于 本

1 个答案:

答案 0 :(得分:3)

StructureMap根本不会保留对“预请求”实例的引用,因此您不必采取任何步骤来告诉StructureMap释放它们。

但是,如果检索到的服务需要明确处理(因为它们实现了IDisposable),那么处置它们仍然是您的责任。 StructureMap只为您提供实例,并由您自己适当地使用它。

有一个例外 - 如果从嵌套容器中检索IDisposable实例,则在放置嵌套容器时将在实例上调用Dispose()