1
Действительно ли это все, что мне нужно сделать для достижения сеанса за запрос с помощью Ninject?Управление сеансом NHibernate с 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 в зависимости от того, что вы делаете». Выполнение и управление ваше подразделение работы, безусловно, что-то делать сознательно. –