我確實有一個建築問題(並且我不是很熟悉Castle Windsor,它被用作我的應用程序的容器)。溫莎保持跟蹤我的瞬態物體
我有一個實現工作單元設計模式的Web應用程序。 UnitOfWork實現了IDisposable接口。
我看到在的UnitOfWork的處置方法完成的動作沒有特別的理由(這些行爲已經在較早的時刻somewhen完成)。
此外,我所有的組件都使用瞬態生命週期實例化。
幾乎所有組件都使用一個存儲庫實例,它也是一個臨時實例,同時也實現了一次性使用(並且沒有特別的理由)。
此外,大多數這些組件也被某些桌面應用程序使用。
我遇到的問題是內存泄漏是由於實施IDisposable接口瞬變分量,因爲我讀到這裏:http://nexussharp.wordpress.com/2012/04/21/castle-windsor-avoid-memory-leaks-by-learning-the-underlying-mechanics/。
我也注意到處置任何方式從來沒有所謂的,無論從Web應用程序,也沒有來自客戶端的人(實際上發現了更多的職位,當發佈被稱爲組件將被調用)。固定的內存泄漏問題的(並且不使用NoTrackReleasePolicy!)
一種選擇是實際刪除的IDisposable的實施。 但我想這與指定NoTrackReleasePolicy類似,這可能導致比內存泄漏更大的問題(儘管我不知道如何?) - 所以這是我的第一個問題。
我也試過指定的瞬態PerWebRequest代替,但如何將是在這種情況下,桌面應用程序的組件的行爲,因爲沒有web請求\背景?這是我的第二個問題。
還有一兩件事,我不希望考慮手動呼喚我解決每一個組件版本...
較少變化的方式解決這個問題最安全\優雅\的任何想法非常感謝...