2009-11-23 69 views
2

我想通过使用下面的代码注册多个NHibernate ISessions(多个数据库)。我得到“有一个组件已经注册为给定的密钥Castle.MicroKernel.Registration.GenericFactory`1 [[NHibernate.ISession,NHibernate,Version = 2.1.0.4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4]]”作为错误当容器试图建立时的消息。使用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

这是bizzare。你正在使用哪个版本?如果在.UsingFactoryMethod()之前移动.named(),会发生什么? – 2009-11-23 18:06:26

+0

我使用的是2.0.0.5642版本当我在工厂方法之前移动.Named()时,我得到了同样的结果。 – beckelmw 2009-11-23 18:16:01

回答

相关问题