2013-04-03 9 views
8

私はDI用のNinjectとMVC4アプリケーション内のNinject.MVC3拡張、特にバージョン3.0.0.6を使用しています。 Ninjectのウィキにdocumentationを読むNinject.OnePerRequestModuleをNinject.Web.MVC 3.0に登録する必要はありますか?

InRequestScopeで作成されたオブジェクトの寿命は、実際にASP.NETによって制御され、適切に1がOnePerRequest HttpModuleをを登録する必要がありますクリーンアップすることが表示されます。

type="Ninject.OnePerRequestModule"/>が見つかりませんでしたので、このドコが古くなっているようです。

一方、はすでにOnePerRequestを扱っているようですが、私は最近bitsを読んでいます。

私の質問は、Ninject.Web.MVC 3.0がすでにこの問題を扱っているのかどうか、または私は手動でHttpModuleを 'web.config'に手動で追加する必要があるかどうかです。

<system.web> 
    <httpModules> 
     <add name="OnePerRequestModule" type="Ninject.Web.Common.OnePerRequestHttpModule"/> 
    </httpModules> 
    ... 

は私が手動でOnePerRequestを追加する必要があります:私は私の設定とすべてに以下追加した

は、私は全くのオブジェクトが破壊されたときのためにテストする方法はわかりませんが、作業をしているように見えますHttpModuleまたはNinject.Web.MVCは私のためにこれを処理するのですか?

答えて

9

実行要約:いいえ、で何もする必要はありません。

手動によって正気チェックできますデバッガをアタッチコントローラ

  • のctorのに追加する何かIDisposable.InRequestScope()
  • バインディング

    • は、手動でトリガvoid Dispose()
    • にブレークポイントを置きますHttpRequest

    Disposeにヒットした場合、それはクマを撃った敵を撃墜します(それを証明するコールスタックがあります)。

    どのような配線ですか? Ninject.Web.Common NuGetパッケージが追加されます。

    public static class NinjectWebCommon 
    { 
        public static void Start() 
        { 
         ... 
         DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule)); 
    

    DynamicModuleUtilityMicrosoft.Web.Infrastructureからである(とStartメソッドの呼び出しがによって駆動されます。

    WebActivator NuGetパッケージから来
    [assembly: WebActivator.PreApplicationStartMethod(typeof(App_Start.NinjectWebCommon), "Start")] 
    

    ()


    pedothicallyと言えば、the docco は言った:

    がより確定的な動作を取得するには、次のいずれかの操作を行うことができます。

    1. を...

    2. OnePerRequestModuleを登録するNinject.Web.Common拡張機能を使用します。

    ...

    あなた(私の強調)

    を登録することができます。私は


    がところで、この質問に答えるの運動の開始時に、私は特別な知識、ちょうどNinjectNinject.Web.Commonにソースと私のアプリケーションのいずれかを持っていない...それはより明確にするでしょう。

  • +0

    Doh!ありがとうルーベン...私はIDisposableを介して自分自身のためのテストを検討している必要があります!そして、あなたが知っている、私が実際にドコを正しく読むかもしれない前に、私が4時間寝ていなかったなら、あなたの説明をありがとう。 wikiよりはるかに詳細。答えに多大な努力を払ってくれてありがとう。ポール。 –

    関連する問題