您好我正在使用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