附加 NHibernate 侦听器导致内存泄漏?
我正在使用 Configuration.AppendListeners 作为一些额外的侦听器。使用附加侦听器时,仅在程序结束时才调用析构函数 - 如果没有附加侦听器,则在 System.GC.Collect 上调用析构函数。
Ad 一种解决方法,我实现了 IDisposable,其中调用以下方法:
private void CleanUpConfigurationListener()
{
if (configuration == null) return;
foreach (NHibernate.Event.ListenerType item in Enum.GetValues(typeof(NHibernate.Event.ListenerType)))
{
configuration.SetListener(item, null);
}
}
使用它,再次调用析构函数。
是内存泄漏吗?
由于 Fluent NHibernate (1.2),我正在使用 NH 3.0。
感谢您的回答。
i'm using Configuration.AppendListeners for some addional listeners. With the appened listeners the destructor is only called when the program ends - without the additional listeners the destructor is called on System.GC.Collect.
Ad a workaround I implemented IDisposable where I call following method:
private void CleanUpConfigurationListener()
{
if (configuration == null) return;
foreach (NHibernate.Event.ListenerType item in Enum.GetValues(typeof(NHibernate.Event.ListenerType)))
{
configuration.SetListener(item, null);
}
}
With it, the destructor is called again.
Is it a memory leak?
I'm using NH 3.0 because of Fluent NHibernate (1.2).
Thanks for your answers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是我的错。我发现了问题:
代码为每个新的 DAL-Session 对象创建了一个新的 SessionFactory :(
It was my fault. I found the problem:
The code created a new SessionFactory for each new DAL-Session object :(