【发布时间】:2010-04-19 23:39:39
【问题描述】:
我试图让 Windsor 为每个请求提供一个 ISession 实例,该实例应该注入到所有存储库中
这是我的容器设置
container.AddFacility<FactorySupportFacility>().Register(
Component.For<ISessionFactory>().Instance(NHibernateHelper.GetSessionFactory()).LifeStyle.Singleton,
Component.For<ISession>().LifeStyle.Transient
.UsingFactoryMethod(kernel => kernel.Resolve<ISessionFactory>().OpenSession())
);
//add to the container
container.Register(
Component.For<IActionInvoker>().ImplementedBy<WindsorActionInvoker>(),
Component.For(typeof(IRepository<>)).ImplementedBy(typeof(NHibernateRepository<>))
);
它基于这里的 StructureMap 帖子 http://www.kevinwilliampang.com/2010/04/06/setting-up-asp-net-mvc-with-fluent-nhibernate-and-structuremap/
但是,当它运行时,也会为每个注入的对象创建一个新的 Session。我错过了什么?
(仅供参考 NHibernateHelper,为 Nhib 设置配置)
【问题讨论】:
标签: asp.net-mvc nhibernate castle-windsor