Windsor + NHibernate + ISession + MVC
- by dbones
Hi
I am trying to get Windsor to give me an instance ISession for each request, which should be injected into all the repositories
Here is my container setup
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<>))
);
Its based upon a StructureMap post here
http://www.kevinwilliampang.com/2010/04/06/setting-up-asp-net-mvc-with-fluent-nhibernate-and-structuremap/
however, when this is run, a new Session is created for every object it is injected too. what am I missing?
thanks in advanced
(FYI the NHibernateHelper, sets up the config for Nhib)