Привет, Я работаю над проектом, который использует контейнер Unity Консоли для разрешения зависимостей для обработки исключений, кеша, ведения журнала и доступа к db, но мы продолжаем получать много просочившихся объектов в память.Unity Container Memory Leaks
Мы используем инъекции свойство как это:
[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. Если вы хотите контролировать срок службы ваших объектов, вам придется предъявить иск другому менеджеру по жизни. –