0

我正在Add 2 numbersWCF 中创建一个基本服务。我在里面添加了以下内容IService.cs

[ServiceContract]
public interface ICalc{
  [OperationContract]
  int Add(int a, int b);
}

现在,在Service.cs我添加的里面

public class Service: IService, ICalc {
    public int Add(int a, int b){
       return a+b;
    }
}

现在我构建了这个服务并service reference to it在控制台应用程序中添加了一个

Program.cs

它被称为

ICalService.Service c = new ICalService.Service();
int result = c.Add(10,20);        //Now on this line I cannot seem to get the Add(int a, int b) method

我之前已经声明过。

ICalService 

是我在引用我的服务时给它起的名字。

为什么Add(int a, int b)方法不显示?

4

2 回答 2

1

您是否为您的 IService 接口或 ICalc 接口创建了代理?从看起来你必须为 IService 接口创建一个代理。

在控制台应用程序中添加 Web 引用时,请确保您正在为 ICalcService 接口创建代理(添加引用)。

于 2012-12-27T18:32:12.460 回答
0

也许这只是您的问题中的一个错字或遗漏,但我没有看到 IService 实际定义的接口,它仅在您的“服务”类上实现。此外,有时只需浏览到您尝试引用的 .svc 页面会很有帮助,浏览器有时会显示比您尝试执行操作时收到的错误消息更好的消息。

编辑:我会确保您能够浏览 .svc 页面并生成 WSDL。如果您能够查看服务操作并获得生成的 wsdl,那么我相信您的服务已经启动并运行良好。我会接受其他人的建议,并确保您随后创建了正确的代理对象。

于 2012-12-27T18:10:06.417 回答