【问题标题】:C# WSDL proxy methodsC# WSDL 代理方法
【发布时间】:2010-09-28 17:02:16
【问题描述】:

我需要使用来自 C# .Net 4.0 客户端的 SOAP Web 服务。我在 VS 2008 中添加了 WSDL 作为服务参考,现在可以将 XML 类型视为类,因此我可以构造 SOAP 消息。

WSDL 端口被定义为一个接口,并且在 WSDL 中定义的两个操作(UploadMessage 和 ValidateMessage)是可见的方法。

您如何实际使用这些方法?我认为 Port 将作为一个类提供,因此您可以直接调用方法,并且 VS 会创建相关代码来发送 SOAP 消息,但看起来您必须编写代码才能进入这些方法。那是对的吗?

我用谷歌搜索了这个,但找不到使用 .Net 4.0 的简单示例;-(

【问题讨论】:

    标签: c# soap wsdl


    【解决方案1】:

    当您使用Add Service Reference 添加服务时,您应该有一个新的命名空间(您在Add Service Reference 对话框中定义 - 左下角)。

    在该命名空间内,应该有一个名为 (yourservicename)Client 之类的类。

    如果找不到它,请在 Visual Studio 解决方案资源管理器中打开 Service References 节点,然后在解决方案资源管理器的小工具栏中找到 Show All Files 按钮 - 单击它以查看所有文件。

    在您的服务参考下,深几个节点,您应该找到一个名为 Reference.cs 的文件,其中包含从您的 WSDL 生成的代码类。

    Reference.cs 中,您应该找到您的客户端类。这是一个常规类,您可以在代码中对其进行实例化并调用方法。这将调用您要连接的远程服务器上的 Web 服务方法。

    【讨论】:

      【解决方案2】:

      通常,服务引用将创建一个名为 [ServiceName]Client 的类,该类实现您提到的接口。

      新建它,然后调用操作。

      比获取客户端并调用它更重要的是您的配置,这将取决于服务。 This article 会有所帮助。

      【讨论】:

      • 谢谢,现在一切都变得更清楚了。类是否总是与 WSDL 端口同名?例如,在我的例子中,它被称为 _defaultSoapClient。
      • @Alistair77:通常,但并非总是如此。它更多地取决于 WSDL 的结构。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多