您好我正在使用Enterprice庫的Unity容器解決異常處理,緩存,日誌記錄和數據庫訪問的 依賴項目,但我們不斷收到大量泄漏對象到內存中。Unity容器內存泄漏
我們使用屬性注入這樣的:
[Dependency]
public Database DB
{
get { return db; }
set { db = value; }
}
[Dependency]
public ExceptionManager ExceptionMgr
{
get { return exceptionManager; }
set { exceptionManager = value; }
}
一些對象的泄露:
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSetti Microsoft.Practices.EnterpriseLibrary.Logging.Configuration .LoggingSettings
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionPolicyData
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Co nfiguration.ReplaceHandlerData
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.WrapHandlerData Microsoft.Practices.EnterpriseLibrary.Common.Configuration.GenericEnumeratorWrapper Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerData Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings
Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheStorageData
有關使用Unity處理依賴關係以避免對象泄漏的一般建議?
你如何確認內存泄漏?你能否在「泄漏」之前和之後發佈更多顯示你的記憶力的統計數據? Unity中需要注意的一點是,默認情況下,對象不會從容器中丟棄,直到容器被丟棄。這是SingeltonLifetimeManager行爲。如果你想控制你的對象的生命週期,你將不得不起訴一個不同的終生管理者。 – 2010-10-06 23:14:33