我有一个 Windows 服务,它查找某个文件并将其保存到数据库中。我正在使用存储库模式并使用 Castle Windsor 进行 DI。
这就是我注册 NHibernate ISession 和我的工作单元的方式。
container.Register(
Component.For<ISession>().UsingFactoryMethod(() => NHibernateSessionManager.Instance.GetSession()).LifeStyle.Transient);
container.Register(
Component.For<INHibernateSessionManager>().Instance(NHibernateSessionManager.Instance).LifestyleSingleton());
container.Register(
Component.For<IUnitOfWork<ISession>>().ImplementedBy<Data.Framework.Nhibernate.UnitOfWork.NHibernateUnitOfWork>().LifeStyle.Transient);
container.Register(Component.For(typeof(IRepository<>)).ImplementedBy(typeof(NHibernateRepository<>)).LifeStyle.Transient);
这对我不起作用,因为当它尝试解析存储库时,它抱怨已经添加到存储库中的密钥。
你能告诉我如何正确地做到这一点吗?
谢谢,-迈克