我目前正在使用StructureMap使用以下代码注入NHibernate ISessions的实例:
ObjectFactory.Initialize(x =>
{
x.ForRequestedType<ISession>()
.CacheBy(InstanceScope.PerRequest)
.TheDefault.Is.ConstructedBy(y => NHibernateSessionManager.Instance.GetSession());
});
我假设CacheBy(InstanceScope.PerRequest)将正确处理它创建的ISession,但我想确定。测试这个的最简单方法是什么?
答案 0 :(得分:4)
好的,所以根据StructureMap documentation:
另请注意StructureMap提供 没有清理功能 由...持有的对象的资源 容器 (Container.EjectAllInstances()会 清除单身对象)。至 约会,我还没有找到这个需要 行为或功能。一世 一般假设是一个组合 基本的垃圾收集和适当的 课堂设计就足够了。
我知道在使用NHibernate时调用ISession.Dispose()是最好的做法,所以我需要自己手动清理它,或者只是依靠垃圾收集来为我做这件事。