2011-08-02 6 views
34

ninjectの最新バージョン(2.2.1.4)に関するいくつかの質問があります。Ninject InRequestScopeが見つからない

は、

(クラスライブラリプロジェクトに)具体的な実装 InRequestScopeにLinq2sql DataContextをバインドする
Bind<DataContext>().To<MoneywatchDataContext>() 

をしようとしていたが、

enter image description here

がこれをやってしまったInRequestScope方法を見つけることができませんでした

Bind<DataContext>().To<MoneywatchDataContext>().InScope(ctx => HttpContext.Current) 
これはまさに InRequestScopeメソッドのように動作する場合は

  1. ちょうどかどうかを確認したかったです。

  2. 私がHTTContext.CurrentをGCしたとき、その下にあるDataCotextも処分されることを保証することになります。

答えて

22

ほとんどの場合、NinjectのWeb版はありません。それを通常のバージョンに置き換えると、InRequestScope拡張メソッドが使用されます。

45

InRequestScopeは、Ninject.Web.Commonの拡張メソッドとして使用できます。 Nuget(Ninjectパッケージ)を介して、以前にインストールした場合だから今、私たちは、追加nugetパッケージをインストールするために、あなたのモジュールクラスが設定されているプロジェクトで、このパッケージをインストールする必要がありNinject.Web.Common

+0

思い出してくれるが必要になる場合があります。私はMVCプロジェクトにそれをインストールしましたが、 'Bind <>()。To <>()、InRequestScope(); 'というモジュールはInfrastucureプロジェクトに含まれていました。私はそれを実現するために私をしばらく抱きしめた。 – fabriciorissetto

31
using Ninject.Web.Common; // that's most likely all you need 
+5

これは私を助けた実際の答えです。 –

+0

私のために働いた。 – orourkedd

+0

(これは拡張メソッドを含む名前空間をインポートします) –

関連する問題