1

Ninject 3.0 と傍受 WCF メソッドに問題があります。

TaskServiceを使用しています

<%@ ServiceHost Language="C#" Debug="true" Service="Fasade.TaskService"     Factory="Ninject.Extensions.Wcf.NinjectServiceHostFactory"%>

私の構成は次のとおりです。

var settings = new NinjectSettings {LoadExtensions = false};
IKernel kernel = new StandardKernel(
   new NinjectSettings {LoadExtensions = false},
   new WcfModule(),
   new DynamicProxyModule()
);

kernel.Bind<ITaskService>().To<TaskService>().InRequestScope().Intercept().With(new ServiceInterceptor());

ServiceInterceptor は IInterceptor を実装し、

カーネルに UnitTest を使用している場合、ninject は ITaskService の実装アクションに DynamicProxy オブジェクトを使用しますが、WCF では機能しません。

NinjectServiceHostFactory が DynamicProxy と Interception を使用して ITaskService の実装を返さない理由がわかりません。

4

1 に答える 1

1

それ以外の

kernel.Bind<ITaskService>().To<TaskService>().
    InRequestScope().Intercept().With(new ServiceInterceptor())

バインディングをに変更する必要があります

Bind<TaskService>().ToSelf().
    InRequestScope().Intercept().With<ServiceInterceptor>();

サービスファイル.svcに実装があるため

Service="Fasade.TaskService"
于 2012-12-10T08:40:07.867 に答える