Tôi tiêm httpcontext sử dụng Ninject nhưHttpcontext.Session luôn là null với 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 này() được gọi trong phương thức Application_Start.
Giao diện này được tiêm vào hàm tạo của một lớp xử lý phiên.
Vấn đề là phiên không bao giờ được khởi tạo nên tôi không thể thêm bất kỳ thứ gì vào nó.
Bất kỳ mã nào như context.session ["something"] = "something" đều làm tăng ngoại lệ tham chiếu null.
Ứng dụng_Bắt đầu quá sớm trong vòng đời? Tôi nghĩ .InRequestScope() sửa lỗi này nhưng nó không hoạt động cho tôi.
Không có một phiên khi ứng dụng bắt đầu. – Amy
xem https://github.com/ninject/ninject.web.mvc/blob/Maintenance_2.2/mvc3/src/Ninject.Web.Mvc/Bootstrapper.cs Hàng: 68 và 69 –