gpt4 book ai didi

c# - 与 C# : XmlChoiceIdentifierATtribute is not valid in Items 中的 Web 服务通信时遇到问题

转载 作者:行者123 更新时间:2023-11-30 18:04:24 26 4
gpt4 key购买 nike

有一个WSDL我无法控制的网络服务,我遇到了麻烦;我可以使用 soapUI 与此服务交互并毫无问题地使用添加服务引用 -> 高级 -> 添加 Web 引用。

但是,当我尝试使用标准的添加服务引用方法(添加服务引用,使用从 wsdl.exe 生成的代码进行连接)与其对话时,出现以下错误:

XmlSerializer attribute System.Xml.Serialization.XmlChoiceIdentifierAttribute is not valid in Items. Only XmlElement, XmlArray, XmlArrayItem, XmlAnyAttribute and XmlAnyElement attributes are supported when IsWrapped is true.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: XmlSerializer attribute System.Xml.Serialization.XmlChoiceIdentifierAttribute is not valid in Items. Only XmlElement, XmlArray, XmlArrayItem, XmlAnyAttribute and XmlAnyElement attributes are supported when IsWrapped is true.

我读过一些文章说 Java 和 .NET 之间存在一些 SOAP 不兼容性,但是四处搜索我发现几乎没有人遇到这个问题,这让我觉得我一定是做错了什么?

最佳答案

发生的事情是 DataContractSerializer(WCF 的默认设置)无法处理模式(这在非 WCF-WCF 场景中很典型)所以它“回退”并生成一个使用 XmlSerializer。生成与 XmlSerializer 一起使用的代理的“回退”机制可能未以与添加 Web 引用使用的直接到 XmlSerializer 方法一致的方式生成它。

当您转到“Advanced->Add Web Reference”时,您手动告诉 Visual Studio 使用一种机制,该机制直接生成使用 XmlSerializer 的代理,而不是使用回退机制。

关于c# - 与 C# : XmlChoiceIdentifierATtribute is not valid in Items 中的 Web 服务通信时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6185162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com