В строке подключения я должен динамически передавать значение loggeduserid, используя имя приложения атрибута = userid в строке подключения и попадая в SQL Server с помощью запроса, выберите app_name().Проблема Rebind NInject при динамическом изменении строки подключения
Используемые технологии: 1) .NET 4.0 2) NHibernate 3) Ninject
Перед авторизованы я использую Ninject IoC контейнер и NHibernate, чтобы загрузить строку соединения без имени атрибута приложения и после того, как записан в Я передаю вошли идентификатор пользователя в качестве значения конструктора и подменой класс 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.
Пожалуйста, помогите мне, как пересвязать класс NHibernateConfiguration с помощью Ninject
в вашем примере вы на самом деле нету связаны NHibernateConfiguration на всех (вам нужно позвонить .bind перед вызовом .Rebind), а также на Замечание, Ninject разве на самом деле локатор службы, даже если она может быть использована в качестве одного , обычно ninject используется в сценариях впрыска конструктора/параметра –