最近我发现我的应用程序似乎是吃,从来没有得到释放内存。在使用CLRProfiler进行分析后,我发现我正在使用的Castle Windsor容器正在保存对象。这些对象在config xml中使用lifestyle =“transient”属性声明。为什么温莎城堡保持暂时的物体?
我发现,如果我把一个显式调用IWindsorContainer.Release(hangingObject)
,它将放弃其引用。
这虽然造成了问题,我没想到的是一个短暂的生活方式对象CastleWindsor将保持一个参考,并有效地创建一个泄漏。这将是一个相当普通且容易出错的任务,会在所有适当的位置插入显式的Release调用。
你见过这个问题,你对如何解决它有什么建议?