检查StructureMap容器​​中是否存在对象

时间:2010-04-06 06:21:49

标签: nhibernate inversion-of-control structuremap

我正在使用StructureMap来处理NHibernate的创建 ISessionFactory和ISession。我把ISessionFactory作为一个范围 单身,这样它只为我的网络应用程序创建了一次,而且我已经 作为一个混合使用范围的ISession,它只会打开一次 网络请求。

我想确保在每个网络请求结束时,我正确 如果是为该Web请求创建的,则处置ISession。我估计 我可以先在Application_EndRequest例程中添加一些代码 检查是否创建了ISession,如果是,则调用ISession.Dispose。

我目前的解决方法是打开一个ISession Application_BeginRequest然后在Application_EndRequest上处理它, 但这在静态文件请求中似乎有些浪费 图像和CSS文件以及什么都不会创建一个ISession 使用它。我知道自那以后整体性能下降是可以忽略不计的 ISessions非常轻量级,但看到所有这些都很烦人 那些在NHProf内创建的ISessions。

1 个答案:

答案 0 :(得分:0)

升级到StructureMap 2.6.1后,我最终使用新的ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects()函数来实现我想要的效果。