问题有点含糊不好意思。我使用教程与 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 管理会话的解决方案- 在他的系列“重构无摩擦和无味代码”中。现在,目前PersistenceFacility负责创建 SessionFactory。我想知道我如何能够重构周围的东西(或者如果这甚至是必要的),所以我可以实现NHibernateActionFilter - 目前需要访问 SessionFactory 行:
sessionController.Session = sessionFactory.OpenSession();
也许我没有正确理解 Castle.Windsor,我不太确定。任何帮助表示赞赏!