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