我的应用程序使用 NHibernate 和每个请求实现的会话。我有一个核心库,它提供了一个线程安全的单例来访问当前的休眠会话。
该单例在 BeginRequest 和 EndRequest 事件中从 Web 应用程序中得到利用,以确保每个请求都打开和关闭会话。此外,我的 DataAccess 层使用相同的单例来执行数据访问,以便利用相同的休眠会话。
我现在将 Ninject 添加到等式中,以便我可以在运行时推断 NHibernate 上下文信息,即连接字符串。我想更改我的网络配置中的一个值,告诉它它将访问哪个数据库。问题是,为了做到这一点,我需要我的单例(上面提到的)能够推断出它的一个属性,IConnectionStringProvider。
它连接正确,但单例永远不会有实例化的属性,因此,一切都会中断。
所以,对于我的问题......我怎样才能让 Ninject 与单例一起工作,或者我怎样才能改变我的实现以与 Ninject 一起工作?