【发布时间】:2012-08-07 12:27:33
【问题描述】:
问题有点含糊抱歉。我使用教程与 NHibernate 和 Castle Windsor 建立了一个新项目。结果是一个 PersistenceInstaller 和一个 PersistenceFacility。 PersistenceFacility 有一个这样的 Init() 方法:
protected override void Init()
{
var config = BuildDatabaseConfiguration();
Kernel.Register(
Component.For<ISessionFactory>()
.UsingFactoryMethod(_ => config.BuildSessionFactory()),
Component.For<ISession>()
.UsingFactoryMethod(k => k.Resolve<ISessionFactory>().OpenSession())
.LifestylePerWebRequest());
}
我遇到了 Ayendes 管理会话的解决方案 Here - 在他的系列“重构无摩擦和无味代码”中。现在,PersistenceFacility 目前负责创建 SessionFactory。我想知道我如何能够重构周围的东西(或者如果这甚至是必要的),所以我可以实现NHibernateActionFilter - 目前需要访问该行中的 SessionFactory:
sessionController.Session = sessionFactory.OpenSession();
也许我没有正确理解 Castle.Windsor,我不太确定。任何帮助表示赞赏!
【问题讨论】:
标签: asp.net-mvc-3 nhibernate castle sessionfactory