最近我發現我的應用程序似乎是吃,從來沒有得到釋放內存。在使用CLRProfiler進行分析後,我發現我正在使用的Castle Windsor容器正在保存對象。這些對象在config xml中使用lifestyle =「transient」屬性聲明。爲什麼溫莎城堡保持暫時的物體?
我發現,如果我把一個顯式調用IWindsorContainer.Release(hangingObject)
,它將放棄其引用。
這雖然造成了問題,我沒想到的是一個短暫的生活方式對象CastleWindsor將保持一個參考,並有效地創建一個泄漏。這將是一個相當普通且容易出錯的任務,會在所有適當的位置插入顯式的Release調用。
你見過這個問題,你對如何解決它有什麼建議?