Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅使用WSDL文件使用Xamarin表单中的SOAP Web服务_Xamarin_Xamarin.forms_Soap_Wsdl - Fatal编程技术网

仅使用WSDL文件使用Xamarin表单中的SOAP Web服务

仅使用WSDL文件使用Xamarin表单中的SOAP Web服务,xamarin,xamarin.forms,soap,wsdl,Xamarin,Xamarin.forms,Soap,Wsdl,我是一个web服务n00b,我正在尝试找出如何将SOAP web服务使用到Xamarin表单项目中。然而,问题是我只得到了.wsdl文件。有人有什么想法或知道从哪里开始吗?很遗憾,我们过去不得不这样做。你想用 这些是我们旧项目的注释,其中一些部分已编辑,但应该足以让您继续: 使用svcutil生成代理服务包装器,例如。 svcutil路径到托管的WSDL 请注意,svcutil工具的不同版本可能会在文件末尾提供异步方法,也可能不会。但这些都不重要。您可能想要async,但当时我们的开发人员并

我是一个web服务n00b,我正在尝试找出如何将SOAP web服务使用到Xamarin表单项目中。然而,问题是我只得到了.wsdl文件。有人有什么想法或知道从哪里开始吗?

很遗憾,我们过去不得不这样做。你想用

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

  • 使用svcutil生成代理服务包装器,例如。
    svcutil路径到托管的WSDL
请注意,svcutil工具的不同版本可能会在文件末尾提供异步方法,也可能不会。但这些都不重要。您可能想要
async
,但当时我们的开发人员并不确定

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

    • 删除关于类结束定义的部分
      ,System.Runtime.Serialization.IExtensibleDataObject

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

    • 删除属性

在我们上次做这件事的时候,似乎确实有一些构造在
Xamarin
中不受支持。情况可能不再如此,但这对我们很有效。

更新
我还没有对这个工具进行详细的测试,但它似乎是一个新的
dotnet
工具,应该可以生成所需的位,以便使用WCF web服务。

您还有其他选择吗?SOAP是一项古老的技术,很难使用。我会不惜一切代价避免它。但是,如果你坚持使用SOAP,Xamarin会在他们的文档中说明这一点:@Jason谢谢你的回复。不幸的是,我没有其他选择。我工作的公司已经创建了SOAPWeb服务,只给了我.wsdl文件。在浏览了许多小时的文档/论坛之后,我试图在Visual Studio中将web引用添加到wsdl文件的路径,但不断收到错误“下载{0}时出错”。此外,我不断遇到人们说要使用WCF,但我不能,因为我在Mac OS上@JasonI在mac电脑上,所以我不相信我能用Silverlight。有什么解决办法吗?@dezlearnpspcs这不是在使用Silverlight,但似乎有一个新的dotnet替代品在macOS上运行
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
    get
    {
        return this.extensionDataField;
    }
    set
    {
        this.extensionDataField = value;
    }
}