仅使用 WSDL 文件在 Xamarin Forms 中使用 SOAP Web 服务

问题描述

我是一个 Web 服务 n00b,我正在尝试弄清楚如何将 SOAP Web 服务用于 Xamarin Forms 项目。然而,问题是我只提供了 .wsdl 文件。任何人都有任何想法或知道从哪里开始?

解决方法

遗憾的是,我们过去不得不这样做。您想使用 Svcutil,

结帐

这些是我们旧项目的笔记,其中一些部分被删节,但应该足以让你开始:

  • 使用 svcutil 生成代理服务包装器,例如 svcutil PATH_TO_HOSTED_WSDL

请注意,不同版本的 svcutil 工具可能会在文件末尾提供或不提供异步方法。不过这些应该没有关系。 您可能希望 async 在这里,但我们当时的开发人员并不确定

  • 然后手动编辑文件以删除对 IExtensibleDataObject 的任何引用,例如

    • 删除类定义末尾的部分 ,System.Runtime.Serialization.IExtensibleDataObject

    • 删除字段 private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

    • 删除属性

public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
    get
    {
        return this.extensionDataField;
    }
    set
    {
        this.extensionDataField = value;
    }
}

在我们最后一次这样做的时候,Xamarin 中似乎不支持某些构造。情况可能不再如此,但这对我们有用。

更新

我还没有详细测试这个工具,但 dotnet-svcutil 似乎是一个新的 dotnet 工具,它应该可以生成允许使用 WCF Web 服务所需的位。>