2013-12-09 10 views
5

私はMVC4/WebApiプロジェクトを持っていますが、これはNinject 3と連携しようとしています。要求範囲内のいくつかのエンティティで特定のオブジェクトを共有したいと思います。 InRequestScope(https://stackoverflow.com/a/10592203/173225)の実装を提供する必要があることを理解してください。私はGitHub上のソースを見て、それは単にHttpContext.Currentを返すように見えます。私はそれを試しました:InRequestScopeをNinjectとWebApiで操作する

var messages = new List<string>(); 
kernel.Bind<IList<string>>() 
    .ToMethod(x => messages) 
    .WhenMemberHas<ServiceResultMessagesAttribute>() 
    .InScope(x => HttpContext.Current); 

運がありません。私もhttps://groups.google.com/d/msg/ninject/rC2vhj8yvBU/NAIkNA-QrAAJで推奨されているように、Ninject.Web.WebApi(#9018)の最新の "unstable" Nugetパッケージを使用しようとしましたが、同じエラーが発生します(get_InRequestScopeメソッドは実装されていません)。

GitHubのソースに関しては、関連ファイルの最新の更新は1年以上前から11ヶ月間だったので、それが不安定なNugetパッケージで最新であるかどうかはわかりません(特にNinjectのドキュメンテーションの状態を考えると)。

要求スコープ内の複数のコンポーネントにわたってオブジェクトの同じインスタンスを挿入する方法の適切な実例を誰でも提供できますか?

ありがとうございました。

答えて

0

Nugetまたは他の場所からNinject.Web.Commonリファレンスが必要になり、InRequestScopeメソッドを使用します。

var messages = new List<string>(); 
    kernel.Bind<IList<string>>() 
     .ToMethod(x => messages) 
     .WhenMemberHas<ServiceResultMessagesAttribute>() 
     .InRequestScope(); 
+1

お返事ありがとうございます。私はおそらくこれを確認することができないだろう)a)私はこれを働かせようとしていた特定のインスタンスを忘れてしまった、b)私たちは長い間、必要な機能を簡単に実装するAutofacに移った。私が問題を示すことができたサンプルコードを掘り起こすことができれば、私はそれを確認できたらこの答えを受け入れるでしょう。 –

関連する問題