Ninject を WCF Web API Preview 5 で動作させるための正しい方向を誰か教えてもらえますか? ASP.NET MVC 3 プロジェクトと、Ninject.Extensions.Wcf ライブラリを使用する別の内部 WCF サービスで正常に稼働しています。ただし、新しい MVC 3 プロジェクトを作成し、NuGet から WebApi.All ライブラリを取得するときに、それを機能させることができません。
私はこのstackoverflowの投稿Setting up Ninject with the new WCF Web APIを見てきましたが、最新リリースのいくつかの変更に関係していると思われます。
また、メインのライブラリ以外にどの Ninject ライブラリを参照すればよいかもわかりません。Ninject.MVC3 、 Ninject.Extensions.Wcf を使用しますか?
これに関するヘルプは大歓迎です。
****アップデート**
私が使用しているコードは、上記の質問の回答からのものです。私はこれを独自のクラスファイルに持っています。
public class NinjectResourceFactory : IResourceFactory
{
private readonly IKernel _kernel;
public NinjectResourceFactory(IKernel kernel)
{
_kernel = kernel;
}
public object GetInstance(Type serviceType, InstanceContext instanceContext, HttpRequestMessage request)
{
return _kernel.Get(serviceType);
}
public void ReleaseInstance(InstanceContext instanceContext, object service)
{
// no op
}
}
これは私のglobal.asaxにあります:
var configuration = HttpConfiguration.Create().SetResourceFactory(new NinjectResourceFactory());
RouteTable.Routes.MapServiceRoute<myResource>("resource", configuration);
私が抱えている問題は、IResourceFactory インターフェイスが認識されず、HttpConfiguration.Create() が存在しないため、HttpConfiguration().CreateInstance メソッドを使用して試みた別の方法で SetResourceFactory を設定する必要があることです。喜び。