我正在使用Fedex的Web服务并且在我真正能够到达任何地方之前预先得到一个恼人的错误.
序列化消息addressValidationRequest1的主体时出错:'无法生成临时类(result = 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 ...;
在这堂课上,我打电话给我:
addressValidationService.addressValidation(request);
这是我收到此错误的时候.
我能找到这个错误的唯一参考来自古老的1.1项目.在我的情况下,我的DLL引用了System.Web和System.Web.Services,这似乎是一个问题.
Sim*_*ver 20
您只需要更改[] [],而不是单个[].
在Reference.cs中更改
private ParsedElement[][] parsedStreetLineField;
to
private ParsedElement[] parsedStreetLineField;
and
public ParsedElement[][] ParsedStreetLine {
to
public ParsedElement[] ParsedStreetLine {
Run Code Online (Sandbox Code Playgroud)
原来联邦快递自己的文档涵盖了这一点!
我使用Microsoft的wsdl.exe生成代码,我收到错误CS0029:无法将类型'fedexreq.ParsedElement'隐式转换为'fedexreq.ParsedElement []'.
这是由Web服务描述语言工具(Wsdl.exe)生成的错误,用于生成客户端信息.当您发布包含maxOccurs属性设置为"unbounded"值的嵌套节点的架构时,Wsdl.exe工具会在生成的代码文件中创建多维数组.因此,生成的代码包含嵌套节点的不正确类型.要解决从数据类型delectation语句中删除括号([])数组字符来修改生成的代码.有关详细信息,请参阅http://support.microsoft.com/kb/326790/en-us和http://support.microsoft.com/kb/891386
小智 6
注意:要访问Simon_Weaver所指的Reference.cs文件,请在visual studio中打开该项目,然后在Solution Explorer中单击Web Reference,然后查看Solution Explorer顶部的小图标.单击"显示所有文件"图标以显示隐藏文件.现在展开Web引用,然后展开里面的Reference.map,最后你会看到你可以编辑的Reference.cs,用[]替换[] []
不要将此Reference.cs与您在下载示例代码时从Fedex获得的Reference.cs混淆.
| 归档时间: |
|
| 查看次数: |
8529 次 |
| 最近记录: |