最近我注意到我的应用程序似乎在使用永远不会释放的内存。在使用CLRProfiler进行分析后,我发现我正在使用的Castle Windsor容器一直持有对象。这些对象在配置XML中声明为lifestyle="transient"。
我发现如果我显式调用IWindsorContainer.Release(hangingObject)
,它会删除其引用。
然而,这会导致问题,我没有预料到使用瞬态生命周期对象的情况下,CastleWindsor会保留引用并创建一个内存泄漏。在所有适当的位置插入显式Release调用将是一个相当单调乏味且容易出错的任务。
您是否遇到过这个问题,并且您有任何建议可以解决它?