我有一个像这样的 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,它可以工作,所以它不仅仅是命名冲突。