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

Consuming SOAP Web Services in Xamarin Forms with just a WSDL File

我是一名 Web 服务 n00b,我正在尝试了解如何将 SOAP Web 服务用于 Xamarin Forms 项目。然而,要注意的是,我只获得了 .wsdl 文件。任何人有任何想法或知道从哪里开始?

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

结账

这些是我们旧项目的注释,其中一些部分已编辑,但应该足以让您继续:

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

请注意,不同版本的 svcutil 工具可能会在文件末尾为您提供异步方法,也可能不会。不过这些应该无关紧要。 你可能想要 async 这里,虽然我们当时的开发人员不太确定

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

    • 删除 class 定义末尾的部分 , 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 服务所需的位。