从 64 位应用程序 returns 数组而不是单个对象调用 Web 服务

Calling web service from 64-bit app returns array instead of single object

我正在努力将 Winforms 应用程序从 32 位升级到 64 位,一切进展顺利,但我 运行 遇到了调用第三方 Web 服务的问题。

当 运行在 32 位应用程序中,一个特定的 Web 方法 return 是一个对象,但是当在 64 位中从同一个应用程序调用该方法时,它似乎 return对象的数组。

System.ServiceModel.CommunicationException: 'There was an error in serializing body of message : 'Unable to generate a temporary class (result=1). error CS0030: Cannot convert type 'DDI.DAL.Subscriber.servicedItem[]' to 'DDI.DAL.Subscriber.servicedItem' error CS0029: Cannot implicitly convert type 'DDI.DAL.Subscriber.servicedItem' to 'DDI.DAL.Subscriber.servicedItem[]'

我还觉得有趣的是错误消息说它不能将数组类型转换为对象类型,而且它不能将对象转换为数组类型。不确定为什么要尝试两者。

我已经尝试通过 Visual Studio 更新服务参考,但我生成的 类 根本没有改变。

有人见过吗?有想法该怎么解决这个吗?调用的是第三方服务,感觉有点手足无措

正在浏览 SO 并意识到我从未发布过这个问题的答案。

我不得不手动编辑我生成的 class 并将 属性 变成一个 two-dimensional 数组到 运行 64 位。突然它起作用了。我联系了服务提供商并提醒他们注意这个问题...不确定他们是否会做出更改。