我正在用 C# 构建一个 WCF,以及一个同时使用它的客户端。出于某种原因,我无法获得返回 int 的方法。这是我的合同:
[ServiceContract]
public interface IMData
{
[OperationContract]
int ReturnAnInt();
[OperationContract]
String HelloWorld();
}
这是我实现它的地方:
public class MData : IMData
{
public String HelloWorld()
{
return "Hello World";
}
public int ReturnAnInt()
{
return 5;
}
}
我正在使用 Visual Studio,对于客户端,我将此 WCF 作为 Web 引用导入。现在由于某种原因,当我声明一个 MData 实例并尝试调用 HelloWorld 时,没有问题,但是在调用 ReturnAnInt 时出现编译错误。
MData m = new MData();
String helloWorld = m.HelloWorld();
int result = m.ReturnAnInt();
ReturnAnInt 得到的错误是:“方法 'ReturnAnInt' 没有重载需要 0 个参数”然后我将鼠标悬停在 Visual Studio 的预期上,它说该方法应该如下所示:
void MData.ReturnAnInt(out int ReturnAnIntResult, out bool ReturnAnIntResultSpecified)
几个小时以来,我一直在用头撞墙,在谷歌上找不到任何东西,这也让我的同事感到困惑。为什么要添加两个定义中没有的 out 参数,并更改返回类型?任何帮助将不胜感激。如果我遗漏了任何有用的信息,我深表歉意。