1
在連接字符串中,我應該通過使用連接字符串中的屬性application name = userid動態傳遞loggeduserid值,並使用query select app_name()進入SQL Server。使用問題動態更改連接字符串時重新綁定NInject
技術: 1).NET 4.0 2)NHibernate的 3)Ninject
之前登錄的我使用Ninject IoC容器和NHibernate加載連接字符串,而不應用程序的名稱屬性和登錄後,在我傳遞的登錄用戶ID爲構造函數值,並重新綁定NhibernateConfiguration類是在注入如下
已記錄之前,NHibernateConfiguration
public override void Load()
{
Bind<ISession>().ToMethod(x => x.Kernel.Get<NHibernateConfiguration>()
.GetSessionFactory()
.OpenSession());
Bind<ISessionFactory>().ToMethod(x => x.Kernel.Get<NHibernateConfiguration>().GetSessionFactory());
}
登錄後傳遞具有構造函數參數的loggeduserid如下所示。
using (var kernal = ServiceLocator.GetKernel())
{
kernal.Rebind<NHibernateConfiguration>().To<NHibernateConfiguration>()
.WithConstructorArgument("loggedUserId", user.Id);
}
但我不能重新綁定或注入NHibernateConfiguration類。
請幫助我如何使用Ninject
您還沒有真正在所有綁定NHibernateConfiguration(你需要調用.Bind後,才能調用.Rebind),還對阿里納斯,Ninject心不是一個真正的服務定位器,即使它可以作爲一個,通常ninject被用於構造函數/參數注入場景中 – 2012-02-09 11:12:10