2009-11-23 3 views
2

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")); 
+0

C'est bizzare. Quelle version utilisez-vous? Que se passe-t-il si vous déplacez .Named() avant .UsingFactoryMethod()? –

+0

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

Répondre

Questions connexes