Ninject InRequestScope缺失

Rag*_*ghu 34 c# binding ninject ninject-2

关于ninject的最新版本(2.2.1.4)有几个问题.

试图将Linq2sql绑定DataContext到具体实现InRequestScope(在类库项目中)

Bind<DataContext>().To<MoneywatchDataContext>()
Run Code Online (Sandbox Code Playgroud)

但找不到InRequestScope方法

在此输入图像描述

最后这样做,

Bind<DataContext>().To<MoneywatchDataContext>().InScope(ctx => HttpContext.Current)
Run Code Online (Sandbox Code Playgroud)

只是想知道是否:

  1. 如果它的行为与InRequestScopeMethod 完全相同.
  2. 它将保证当我HTTContext.Current的GC被用时,底层DataCotext也将被处理掉.

Lok*_*wer 47

InRequestScope在Ninject.Web.Common中可用作扩展方法.所以如果之前通过Nuget(Ninject包)安装,我们可能需要安装额外的nuget包Ninject.Web.Common


Sim*_*ver 34

using Ninject.Web.Common;    // that's most likely all you need
Run Code Online (Sandbox Code Playgroud)

  • 这是帮助我的实际答案. (5认同)

Rem*_*oor 23

很可能你引用了Ninject的无网页版本.将其替换为普通版本,您将拥有InRequestScope扩展方法.