【问题标题】:How does a PersistenceFacility using Castle.Windsor affect my ability to implement an NHibernateActionFilter?使用 Castle.Windsor 的 PersistenceFacility 如何影响我实现 NHibernateActionFilter 的能力?
【发布时间】: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


    【解决方案1】:

    我想我有它,如果有的话,有点明显。将自己从屏幕上撬开并步行到商店有帮助!我应该只是将 ISessionFactory 注入 NHibernateActionFilter 吧?

        private static ISessionFactory sessionFactory;
    
        public NHibernateActionFilter(ISessionFactory sessionFactory)
        {
            sessionFactory = sessionFactory;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      相关资源
      最近更新 更多