1
这真的是我必须做的,以实现每个请求与Ninject会话?NHibernate会话管理w/Ninject
public class WebModule : NinjectModule
{
public override void Load()
{
Bind<ISession>().ToMethod(x => MvcApplication.SessionFactory.OpenSession()).InRequestScope();
}
}
的Global.asax:
public class MvcApplication : NinjectHttpApplication
{
public static ISessionFactory SessionFactory = CreateSessionFactory();
public static void RegisterRoutes(RouteCollection routes) { /* Routing Stuff */ }
protected override void OnApplicationStarted()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
protected override void OnApplicationStopped()
{
SessionFactory.Dispose();
}
protected static ISessionFactory CreateSessionFactory() { /* session factory stuff */ }
protected override IKernel CreateKernel()
{
return new StandardKernel(new WebModule());
}
}
这有什么问题呢?这似乎太简单了。
引用的帖子是过时的(当时也是:D)。见https://github.com/ninject/Ninject.Web.Common/wiki/InRequestScope说了这么多,手动和显式地处理'ISession's根据你在做什么没有羞耻 - 提交和管理你的工作单位肯定有意识地做。 – 2013-04-03 12:42:56