无法在WCF中引用操作合同方法

时间:2012-12-27 18:01:07

标签: c# .net wcf

我正在WCF中创建一个基本的Add 2 numbers服务。我在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)方法没有出现?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

也许这只是一个错误或你的问题遗漏,但我没有看到IService实际定义的界面,它只在你的班级'服务'上实现。此外,简单地浏览到您尝试引用的.svc页面有时会很有帮助,浏览器有时会显示比尝试执行操作时收到的更好的错误消息。

编辑: 我将确保您能够浏览.svc页面并生成WSDL。如果您能够查看服务操作并获得生成的wsdl,那么我认为您的服务已启动且运行正常。我会采取其他人的建议,并确保您正在创建正确的代理对象。