我正在将 FedEX Web 服务合并到一个 vb.net 应用程序中。我已经为各种服务(费率、运输/创建标签、地址验证)导入了 WSDL。将它们添加为 Web 引用后,在构建项目时出现 SGEN 错误:
“命名空间''中的顶级 XML 元素 'XXX' 引用了不同的类型......”
它们显然是在单独的 WSDL 中重用的部分。到目前为止,我已经能够通过更改来修复错误:
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18034"), _
System.SerializableAttribute(), _
System.Xml.Serialization.XmlTypeAttribute([Namespace]:="http://fedex.com/ws/addressvalidation/v2")> _
Public Enum AddressValidationAccuracyType
包括一个 TypeName,例如:
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18034"), _
System.SerializableAttribute(), _
System.Xml.Serialization.XmlTypeAttribute([TypeName]:="servAddressValidationAccuracyType", [Namespace]:="http://fedex.com/ws/addressvalidation/v2")> _
Public Enum AddressValidationAccuracyType
但这是一项乏味的任务,我希望在添加 wsdl 文件后无需更新所有 reference.vb 文件的情况下可能有一种不同/正确/更好的方法来消除此错误。我是使用网络参考的新手,并且没有发现 FedEx 文档有帮助。