Я заявивших свои привязок Ninject в NinjectModule так:Ninject + NHibernate с двумя или несколькими базами данных
public override void Load()
{
Bind<ISessionFactory>().ToMethod(c => SessionFactory1.SessionFactory).InSingletonScope().Named("d1");
Bind<ISessionFactory>().ToMethod(c => SessionFactory2.SessionFactory).InSingletonScope().Named("d2");
Bind<ISession>().ToMethod(c => c.Kernel.Get<ISessionFactory>("d1").OpenSession()).Named("d1");
Bind<ISession>().ToMethod(c => c.Kernel.Get<ISessionFactory>("d2").OpenSession()).Named("d2");
Bind(typeof(IReadOnlyRepository<,>)).To(typeof(Repository<,>)).Named("d1").WithConstructorArgument("session", c => c.Kernel.Get<ISession>("d1"));
Bind(typeof(IReadOnlyRepository<,>)).To(typeof(Repository<,>)).Named("d2").WithConstructorArgument("session", c => c.Kernel.Get<ISession>("d2"));
}
Если пробег а к Разрешеня IReadonlyRepository я получаю исключение из Ninject (ActivationException: Ошибка активации Repository {ulong, Workflow}) может ли кто-нибудь обнаружить ошибку в моей конфигурации привязки?
IReadOnlyRepository repository1 = kernel.Get<Repository<UInt64, Workflow>>("d1");
Попробуйте использовать другое имя для сессии и хранилища, например, «s1» и «s2» для ISessions и «r1», «r2» для IReadOnlyRepository –