2
我的應用程序啓動方法中有以下代碼以及 代碼來設置容器和工廠支持。工廠 方法似乎只被調用一次,而不是每次需要會話 。城堡 - 使用工廠方法和瞬態生活方式
_container.Kernel.Register(
Component.For<ISession>().LifeStyle.Transient
.UsingFactoryMethod(() =>
{
//Any line of code will only be hit once the first time ISession is requested.
}));
我最初使用從樹幹建造1509,但更新打造1548與 相同的結果。請讓我知道,如果你需要更多的信息來幫助 我。
注:這是交叉發佈到城堡郵件列表等待批准。
注2:此代碼與windsor的最新發行版一起使用。但是,我們正在修改主幹構建,因爲我們需要變更集5927(由mausch在2009年8月13日創建)中的功能。
參見:
- Register Multiple Components for Single Interface Using Castle Windsor
- http://fisheye2.atlassian.com/changelog/castleproject/?cs=5927
我不能使用PerWebRequest,因爲它會在應用程序啓動時使用它。我修改了這個問題,以便當我在調試器中遍歷代碼時,工廠方法中的第一行代碼僅在第一次請求ISession時纔會被觸發,而不會再次發生。這似乎是暫時的生活方式不起作用。 – beckelmw 2009-12-10 20:27:24
如果您建議.UsingFactoryMethod與Lifestyle.Transient結合不起作用,那麼您就錯了。我只是在樹幹上測試它。 – 2009-12-10 21:13:46
,爲什麼不使用NHibernate集成工具?我確定它可以處理應用程序啓動等情況。 – 2009-12-10 21:14:52