我的應用程序使用NHibernate爲每個請求實現一個會話。我有一個核心庫,它提供了一個線程安全的singleton來訪問當前的nhibernate會話。Ninject和Singleton
在BeginRequest和EndRequest事件中,Web應用程序利用這個單例來確保每個請求都打開和關閉會話。此外,我的DataAccess層使用相同的單例來執行數據訪問,以便使用相同的nhibernate會話。
我現在已經在等式中添加了Ninject,以便我可以在運行時推斷出NHibernate的上下文信息,即連接字符串。我想在我的web配置中更改一個值,告訴它它將會擊中哪個數據庫。問題是,爲了做到這一點,我需要我的單例(如上所述)能夠推斷出它的一個屬性IConnectionStringProvider。
它連接正確,但單身永遠不會有實例化的屬性,因此,一切都打破。
因此,對於我的問題......我如何讓Ninject與singleton一起工作,或者如何改變我的實現以使用Ninject?