2012-01-03 6 views
5

では動作しません私はCreateKernel方法Ninject MVCは、私はそれを動作させるためにNinject WCFで動作するようにNinject MVCを得ているInRequestScope

kernel.Bind<ServiceHost>().To<NinjectServiceHost>(); 
KernelContainer.Kernel = kernel; 

に2行を追加依存関係が注入されているが、 Disposeメソッドが呼び出されていない、InRequestScopeと私自身のスコープFuncで両方を試みましたが、ScopeオブジェクトとしてOperationContext.Currentを返しますが、disposeは呼び出されません。

アップデート2012年9月5日 この情報は廃止され、Nuget Ninject.MV3とNinject.Extensions.WCF(3.xの)からMVCとWCFのダウンロードのためのMVC NugetテンプレートはNinjectブートストラップNinjectWebCommonを追加します。 CSと私はninject 3.0を使用することをお勧めninject edditのためのSVCにSVCのXML(右クリック/ビューのマークアップを)サポートを追加し、XMLノード

+2

何かそれがために良い例を見つけるのは本当に難しいですこれは、同時にMVCとWCFのためNInjectを使用する方法を示していますので、私はアップ投票この質問です。 –

+0

この情報は廃止されました。編集 – Anders

答えて

2

私はstackoverflow n00bですが、 'System.Runtime.CompilerServices.ExtensionAttribute'例外の問題は、それがSystem.Coreから.net 4.0のmscorlibに移動したためです。 .net 4.5。 .net 4.5をインストールすると、問題は消えます。私は何かがミックスで.net 4.5で構築されたと思う。 https://github.com/ninject/Ninject.Web.Common/issues/3すぐに修正されるようなサウンドはすぐに修正されます。 WcfのInRequestScopeの問題については、Remoが今日Googleグループでいくつかの助けをしました... "Ninject.GlobalKernelRegistrationModule"から派生した新しいモジュールを追加し、それをカーネルにロードします。 "

すなわちなどの...

public class MyModule : Ninject.GlobalKernelRegistrationModule<WcfRequestScopeCleanup> 
{ 
} 

//And where you load your modules... 
kernel.Load<MyModule>(); 
+0

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

2

工場=「Ninject.Extensions.Wcf.NinjectServiceHostFactory」を追加します。 0-rc2で入手可能である。 InRequestScopeは、Web側とWCF側の両方の要求に対して機能します。

+1

を参照してくださいありがとう、私は新しいMVC3プロジェクトで、Ninject.Web.Commonをダウンロードしようとしました... OnePerRequestModuleをNinjectWebCommonクラスのOnePerRequestHttpModuleに変更しなければなりませんでした(とにかく、アセンブリ 'mscorlib、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089'から 'System.Runtime.CompilerServices.ExtensionAttribute'タイプを読み込めませんでした。 – Anders

+0

WebactivatorとNinjectの間の競合のように見えます。両方ともスタンドアロンで動作しますが、一緒にエラーが発生します。 – Anders

+0

パッケージは最新のWebアクティベータを使用して私にとって完全に機能します。これは他のパッケージ/ライブラリと競合している必要があります。 –

関連する問題