繁体   English   中英

如何从客户端代理调用WCF方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM