我创建了一个WCF服务,工作正常,现在我想在客户端应用程序中使用它。 使用SVCutil.exe我为该服务生成了代理和aap.settings并将其添加到客户端sln(控制台应用程序)
但问题是我无法访问wcf方法。
using System.ServiceModel;
namespace WCFClient
{
class Program
{
static void Main(string[] args)
{
Program p = new Program();
p. // not getting the wcf methods
}
}
}
我做错了什么?
答案 0 :(得分:1)
取决于您的服务如何调用。当你创建服务引用时,你给它一个命名空间名称 - 在该命名空间中,应该有一个名为(yourservicename)的类客户端 - 实例化其中一个并开始运行。
您应该在服务参考下找到这些文件 - 如果您单击解决方案资源管理器中的“显示所有文件”按钮,您将开始在服务引用下看到大量文件 - 尤其应该是{{ 1}}。这些类在该文件中定义 - 您可以检查它,它是一个常规的C#文件。
更新:如果您使用Reference.cs
创建代理,则根据您与svcutil.exe
一起使用的选项,您还应该获得包含所需类的.cs文件。
svcutil
将在您运行此命令的目录中创建一个名为svcutil http://yourserver/yourservice
和(your WSDL name).cs
的文件。
您还可以为C#文件指定文件名:
output.config
然后您的文件名为svcutil http://yourserver/yourservice /out:MyService.cs
。
SvcUtil有一个吨的选项 - 无法解释所有这些选项,与他们一起玩,阅读MSDN文档。
同样,其中一个将被称为MyService.cs
。在项目中包含* .cs文件,检查命名空间,创建(your service name)Client
类的实例并使用它来调用WCF服务。
示例:强>
从网址抓取信息
.....Client
在项目中包含生成的svcutil http://www.ecubicle.net/iptocountry.asmx?wsdl /out:IP2CountryClient.cs
;默认情况下,该文件中的类没有特定的命名空间,因此它们是全局可见的
实例化客户端类IP2CountryClient.cs
iptocountrySoapClient
通话方法 - 例如这一个在这里:
iptocountrySoapClient client = new iptocountrySoapClient();