我正在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)
方法没有出现?
答案 0 :(得分:1)
您是否为IService接口或ICalc接口创建了代理?从它看起来你必须为IService接口创建一个代理。
在控制台应用程序中添加Web引用时,请确保您正在为ICalcService接口创建代理(添加引用)。
答案 1 :(得分:0)
也许这只是一个错误或你的问题遗漏,但我没有看到IService实际定义的界面,它只在你的班级'服务'上实现。此外,简单地浏览到您尝试引用的.svc页面有时会很有帮助,浏览器有时会显示比尝试执行操作时收到的更好的错误消息。
编辑: 我将确保您能够浏览.svc页面并生成WSDL。如果您能够查看服务操作并获得生成的wsdl,那么我认为您的服务已启动且运行正常。我会采取其他人的建议,并确保您正在创建正确的代理对象。