既存のサイトを WCF を使用して別のボックスのサービスと通信するように変換しようとしています。現在、自動登録を使用してサービスを直接接続しています。Windsor の WcfFacility を使用しようとすると、登録しようとしているインターフェイスの 1 つで ComponentRegistrationException が発生します。エラーは以下のとおりです。これは特定のインターフェイスでのみ発生し、他のすべてのインターフェイスは正しく機能し、同じ方法でコーディングされています。
Type Demo.IFooService is abstract.
As such, it is not possible to instansiate it as implementation of Demo.IFooService service
同じサービスで WCF を使用するように変換した別の Windows フォーム アプリケーションがあり、これは 100% 動作します。
次のコードを使用して、(Windows と Web アプリの両方で) WCF サービスを登録します。
Container.Register(Component.For<IFooService>()
.Named("FooService")
.ActAs(new DefaultClientModel
{
EndPoint = WcfEndPoint.BoundTo(new BasicHttpBinding())
.At("http://localhost/services/fooservice.svc")
}
));
インターフェイスは ServiceContract および OperationContract 属性でマークされており、他のすべてのものと同じです。
ウィンザーがこれを抽象クラスと見なしているのに、他のクラスを正しく登録している理由がわかりません。
何か案は?