Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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
';序列化正文时出错';。通过.NET 3.5调用Fedex Web服务时出现问题_.net_Web Services - Fatal编程技术网

';序列化正文时出错';。通过.NET 3.5调用Fedex Web服务时出现问题

';序列化正文时出错';。通过.NET 3.5调用Fedex Web服务时出现问题,.net,web-services,.net,Web Services,我正在使用联邦快递的网络服务,在我真正到达任何地方之前,就出现了一个恼人的错误 序列化消息addressValidationRequest1的正文时出错:“无法生成临时类(结果=1)。 错误CS0030:无法将类型“FedEx.InterOp.AddressValidationServiceReference.ParsedElement[]”转换为“FedEx.InterOp.AddressValidationServiceReference.ParsedElement” 错误CS0029:无法

我正在使用联邦快递的网络服务,在我真正到达任何地方之前,就出现了一个恼人的错误

序列化消息addressValidationRequest1的正文时出错:“无法生成临时类(结果=1)。 错误CS0030:无法将类型“FedEx.InterOp.AddressValidationServiceReference.ParsedElement[]”转换为“FedEx.InterOp.AddressValidationServiceReference.ParsedElement” 错误CS0029:无法将类型“FedEx.InterOp.AddressValidationServiceReference.ParsedElement”隐式转换为“FedEx.InterOp.AddressValidationServiceReference.ParsedElement[]” “。有关详细信息,请参阅InnerException

我正在使用.NET 3.5,并为我生成了一个可怕的命名类(我不知道为什么它不仅仅是AddressValidationService):

AddressValidationPortTypeClient addressValidationService=new

在本课程中,我进行web服务调用:

addressValidationService.addressValidation(请求)

这就是我得到这个错误的时候


我能找到的关于这个错误的唯一参考资料来自古老的1.1项目。在我的例子中,我的DLL引用了System.Web和System.Web.Services,这在当时似乎是一个问题。

联邦快递自己的文档明确地说明了这一点

我正在使用Microsoft的wsdl.exe生成代码,出现错误CS0029:无法将类型“fedexreq.ParsedElement”隐式转换为“fedexreq.ParsedElement[]”。


这是Web服务描述语言工具(Wsdl.exe)生成客户机信息时产生的错误。发布包含将maxOccurs属性设置为“unbounded”值的嵌套节点的架构时,Wsdl.exe工具会在生成的代码文件中创建多维数组。因此,生成的代码包含不正确的嵌套节点类型。要解决此问题,请通过从数据类型DELECTION语句中删除括号([])数组字符来修改生成的代码。有关更多信息,请参见和

您只需更改[],而不需要更改单个[]

在Reference.cs中更改

private ParsedElement[][] parsedStreetLineField;
to
private ParsedElement[] parsedStreetLineField;
and
public ParsedElement[][] ParsedStreetLine {
to
public ParsedElement[] ParsedStreetLine {

注意:要访问Simon_Weaver引用的Reference.cs文件,请在visual studio中打开该项目,然后在解决方案资源管理器中,单击Web引用,然后查看解决方案资源管理器顶部的小图标。单击“显示所有文件”图标以显示隐藏的文件。现在展开web引用,然后展开其中的reference.map,最后您将看到可以编辑的reference.cs,将[]替换为[]


请不要将此Reference.cs与您在下载示例代码时从联邦快递获得的Reference.cs混淆。

作为对您所指答案的评论,这难道不是更好吗?FWIW,WCF服务客户端似乎也在发生这种情况……人们真的还需要这个答案吗!联邦快递!ParcelForce的API在其ParcelContents、Address和ServiceCodes属性方面存在相同的问题。