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