3

私はこのようなWCFセットアップを持っています

[ServiceContract]
public interface A {

  [OperationContract( Name = "Log_1" )]
  void Log( AuthTicket authTicket, string message );
}

[ServiceContract]
public interface B : A { 

  [OperationContract( Name = "Log_2" )]
  void Log( AuthTicket authTicket, LogLevel level, string message );
}

私のプロキシ クラスでは、問題なく B.Log() を呼び出すことができます。Intellisense は A.Log() を認識しますが、実行時に呼び出すと例外が発生します。

このプロキシではメソッド ログはサポートされていません。これは、メソッドが OperationContractAttribute でマークされていない場合、またはインターフェイス タイプが ServiceContractAttribute でマークされていない場合に発生する可能性があります。

プロキシが A.Log() オーバーロードを「認識」できないのはなぜですか? A.Log() の宣言をインターフェイス B に移動すると機能するので、単なる名前の衝突ではありません。

4

0 に答える 0