J'essaie d'enregistrer plusieurs ISessions NHibernate (plusieurs bases de données) en utilisant le code ci-dessous. Je reçois "Il ya un composant déjà enregistré pour la clé donnée Castle.MicroKernel.Registration.GenericFactory`1 [[NHibernate.ISession, NHibernate, Version = 2.1.0.4000, Culture = neutre, PublicKeyToken = aa95f207798dfdb4]]" comme l'erreur message lorsque le conteneur essaie d'être construit.Enregistrement de plusieurs composants pour une seule interface à l'aide de Castle Windsor
container.Kernel.Register(
Component.For<ISession>().LifeStyle.Transient
.UsingFactoryMethod(() => sessionFactoryOne.OpenSession()
).Named("ISession+sessionOne"));
container.Kernel.Register(
Component.For<ISession>().LifeStyle.Transient
.UsingFactoryMethod(() => sessionFactoryTwo.OpenSession())
.Named("ISession+sessionTwo"));
C'est bizzare. Quelle version utilisez-vous? Que se passe-t-il si vous déplacez .Named() avant .UsingFactoryMethod()? –
J'utilise la version 2.0.0.5642 Quand j'ai déplacé .Named() avant la méthode d'usine j'ai la même chose. – beckelmw