0

少し漠然とした質問でごめんなさい。チュートリアルを使用して、NHibernateとCastleWindsorで新しいプロジェクトを配線しました。その結果、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を正しく理解していないのかもしれませんが、よくわかりません。助けていただければ幸いです。

4

1 に答える 1

0

私はそれを持っていると思います、もしそうなら、少し明白なものです。画面から離れて店まで散歩するのが助けになりました!ISessionFactoryをNHibernateActionFilterに注入する必要がありますか?

    private static ISessionFactory sessionFactory;

    public NHibernateActionFilter(ISessionFactory sessionFactory)
    {
        sessionFactory = sessionFactory;
    }
于 2012-08-10T08:28:34.613 に答える