Asp.net mvc Ninject';s";在RequestScope()中;isn';行不通
我正在运行带有实体框架+存储库+UnitOfWork层、服务层和Web表示层的MVC5应用程序。Ninject用于解决依赖关系,服务绑定都在下面列出的单独模块中Asp.net mvc Ninject';s";在RequestScope()中;isn';行不通,asp.net-mvc,dependency-injection,ninject,unit-of-work,Asp.net Mvc,Dependency Injection,Ninject,Unit Of Work,我正在运行带有实体框架+存储库+UnitOfWork层、服务层和Web表示层的MVC5应用程序。Ninject用于解决依赖关系,服务绑定都在下面列出的单独模块中 public class ServiceModule : NinjectModule { public override void Load() { Bind<IUnitOfWork>().To<EfUnitOfWork>().InRequestScope();
public class ServiceModule : NinjectModule
{
public override void Load()
{
Bind<IUnitOfWork>().To<EfUnitOfWork>().InRequestScope();
Bind<ICategoriesService>().To<CategoriesService>();
.
.
other bindings...
}
}
公共类服务模块:Ninject模块
{
公共覆盖无效负载()
{
Bind().To().InRequestScope();
绑定()到();
.
.
其他绑定。。。
}
}
问题在于,对于需要2+个服务的请求,每个服务都会创建另一个工作单元,尽管有“InRequestScope”,但当我切换到:
Bind<IUnitOfWork>().To<EfUnitOfWork>().InScope(c => System.Web.HttpContext.Current);
Bind().To().InScope(c=>System.Web.HttpContext.Current);
一切都很完美,只创建了一个unitOfWork实例来处理请求。
可能有什么问题