BuHttpcontext.Session Application_Start yönteminde denir Ninject
private void RegisterDependencyResolver()
{
HttpContextBase context = new HttpContextWrapper(HttpContext.Current);
var kernel = new StandardKernel();
kernel.Bind<ISession>().To<SessionService>()
.InRequestScope()
.WithConstructorArgument("context", ninjectContext => context);
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
}
RegisterDependencyResolver gibi Ninject kullanarak HttpContext enjekte ediyorum() ile her zaman sıfırdır.
Bu arabirim, oturumları işleyen bir sınıfın yapıcısı içine enjekte edilir.
Sorun, oturum hiçbir zaman başlatılmadı, bu yüzden ona hiçbir şey ekleyemiyorum.
context.session ["something"] = "bir şey" gibi herhangi bir kod, boş başvuru istisnasını yükseltir.
Application_Start yaşam döngüsünün çok erken mi? Düşündüm. InququestScope() bunu düzeltiyor ama benim için çalışmıyor.
uygulama başladığında bir oturum yoktur. – Amy
https://github.com/ninject/ninject.web.mvc/blob/Maintenance_2.2/mvc3/src/Ninject.Web.Mvc/Bootstrapper.cs Satırları: 68 ve 69'a bakın –