gpt4 book ai didi

c# - 在 C# 中反序列化来自 Java Web 服务的 SOAP 响应

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:07 26 4
gpt4 key购买 nike

我正在尝试从使用运行 .net Framework 4.0 的 C# 构建的组件调用用 Java 编写的第三方 Web 服务。 WSDL 位于 here .

我遇到的问题是,我的 C# 代理类不会正确反序列化来自 GetProjects 方法的响应,因为它为 Project 生成了一个类,但响应不包含映射到 Project 的元素,而是包含“项目” "在 xsi:type 属性中指定项目的元素。

根据我对该问题的研究,反序列化似乎失败了,因为项目节点返回为 <item xsi:type="ns1:Project" xmlns="" xmlns:ns1="http://v3.soap.api.indextools.com">但代理期待 <Project> .

因为代理是在添加服务引用时自动生成的,并且因为我没有能力更改 Web 服务,所以我很好奇是否有任何解决此问题的方法可以让我的代理类正确反序列化响应.此问题不仅仅与 GetProjects 方法有关。我预计服务中的其他方法也会遇到同样的问题,因此我们将不胜感激能够在全局范围内解决此问题。

最佳答案

也许可以尝试更改项目序列化的名称:

[DataContract(Name="item")]
public partial class Project { }

这应该告诉 WCF 期待 <item>而不是 <Project> .

因为 Project是一个生成的部分类,您应该将其放入其自己的 .cs 文件中。

关于c# - 在 C# 中反序列化来自 Java Web 服务的 SOAP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8746935/

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