什么是Unity相当于Windsor的发布

时间:2012-12-06 17:06:44

标签: unity-container release

我在类中注入了一些非托管资源,一旦控制器被释放,我需要处理控制器(否则我会有内存泄漏)。我查看了IUnityContainer并没有找到允许我这样做的Release(或类似)方法。

经过一些试验和错误(以及阅读)之后,在我看来,Unity并没有跟踪它创建的类型的情况。这与Windsor有所不同,在那里我可以调用Release,整个对象图将被释放。这实际上是首先拥有容器(对象生命周期管理)的要点之一。我不需要直接调用Dispose容器应该能够以正确的顺序/对象为我做这件事。

所以,我的问题是,如何告诉Unity不再需要一个对象并且应该处理它?<​​/ p>

如果无法做到这一点,有没有办法将生命周期更改为每个网络请求?

注意,更换容器不是一种选择。不幸的是:(

1 个答案:

答案 0 :(得分:0)

您必须查看Unity中的不同终身经理。 ContainerControlledLifetimeManager将对其创建的每个项目调用dispose。不幸的是,这个管理器充当已解析对象的单例,因此可能不适合您。

另一种选择是创建自己的生命周期管理器,它可以跟踪它创建的对象,并且在处理容器时只需处理每个对象。