1

如果城堡保留对该对象的引用,我在哪里可以访问该对象?容器内某处有该引用的列表吗?

我正在使用温莎城堡 3.3.0

4

1 回答 1

3

如果城堡保留对该对象的引用,我在哪里可以访问该对象?

它有一个管理对象生命的参考。您不需要此引用,也不应管理由封装代码创建的引用(这是关于面向对象的编程封装和抽象原则!)。

即使这是暂时的,您也需要释放手动解析的组件,以便让 Castle Windsor 丢弃该引用并让垃圾收集器释放内存。

检查取自官方文档的以下声明:

有些人,尤其是那些过去使用某些其他容器的人,有时会忘记 Windsor 可能会跟踪瞬态组件。他们解决实例,从不释放它们。为了确保正确的组件生命周期管理,Windsor 可能会跟踪这些组件。这意味着除非您释放它们,否则垃圾收集器将无法回收它们,并且您最终会出现事实上的内存泄漏。所以记住这个有用的经验法则:记住释放你明确解决的问题。

于 2014-09-22T15:16:53.210 回答