6
我使用ninject這樣Httpcontext.Session總是空與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注入的HttpContext()被調用在Application_Start方法。
此接口注入到處理會話的類的構造函數中。
問題是會話永遠不會被初始化,所以我不能添加任何東西。
任何類似context.session [「something」] =「something」的代碼都會產生一個空引用異常。
Application_Start是否在生命週期中過早?我想.InRequestScope()修復這個,但它不適合我。
沒有一個會話的應用程序啓動時。 – Amy
請看https://github.com/ninject/ninject.web.mvc/blob/Maintenance_2.2/mvc3/src/Ninject.Web.Mvc/Bootstrapper.cs行數:68和69 –