[英]How to call wcf methods from client proxy
我创建了一个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
}
}
}
我做错了什么?
取决于服务的调用方式。 创建服务引用时,您给了它一个名称空间名称-在该名称空间中,应该有一个名为(yourservicename)Client的类-实例化其中的一个然后开始。
您应该在“服务参考”下找到这些文件-如果在解决方案资源管理器中单击“显示所有文件”按钮,您将开始在服务参考下看到大量文件-特别是应该是Reference.cs
。 这些类在该文件中定义-您可以检出它,它是一个常规C#文件。
更新:如果使用svcutil.exe
创建代理,则取决于与svcutil
使用的选项,您还应该获得一个包含所需类的.cs文件。
svcutil http://yourserver/yourservice
会在运行此命令的目录中创建一个名为(your WSDL name).cs
的文件和一个output.config
。
您还可以为C#文件指定文件名:
svcutil http://yourserver/yourservice /out:MyService.cs
然后您的文件称为MyService.cs
。
SvcUtil工具有一吨的选项-不能将它们全部解释给你听,玩弄他们,在MSDN文档的阅读它。
同样,其中之一将被称为(your service name)Client
。 在项目中包括该* .cs文件,检查名称空间,创建.....Client
类的实例,然后使用它来调用WCF服务。
例:
从网址获取信息
svcutil http://www.ecubicle.net/iptocountry.asmx?wsdl /out:IP2CountryClient.cs
将生成的IP2CountryClient.cs
包含在您的项目中; 默认情况下,该文件中的类没有特定的命名空间,因此它们是全局可见的
实例化客户端类iptocountrySoapClient
iptocountrySoapClient client = new iptocountrySoapClient();
调用方法-例如,这里的一个:
string result = client.FindCountryAsString("82.82.82.82");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.