You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中WSDL复杂类型重复属性赋值问题求助

问题解决:VB.NET中WSDL生成的复杂类型数组属性空引用错误

你的思路完全正确,问题出在addressline属性——它是数组类型,但默认状态下是空引用(Nothing),直接通过索引赋值必然会抛出"object reference not set to instance of an object"错误,必须先实例化指定长度的数组才能使用。

修正后的代码示例

Dim DeliveryAddress As New deliveryaddressType

' 先实例化长度为2的字符串数组(对应最多2条地址线的要求)
DeliveryAddress.addressline = New String(1) {}
' 给数组元素赋值
DeliveryAddress.addressline(0) = "address line 1"
DeliveryAddress.addressline(1) = "address line 2" ' 可选,不需要的话可以留空

' 其他单一属性正常赋值
DeliveryAddress.city = "city"
DeliveryAddress.zip = "zip"
DeliveryAddress.state = "state"
DeliveryAddress.country = "USA"

补充说明

如果WSDL生成的addressline是List(Of String)而非数组(部分WSDL工具会自动将可重复元素转为泛型集合),处理方式略有不同:

Dim DeliveryAddress As New deliveryaddressType
DeliveryAddress.addressline = New List(Of String)()
DeliveryAddress.addressline.Add("address line 1")
DeliveryAddress.addressline.Add("address line 2") ' 可选

内容的提问来源于stack exchange,提问作者bjg1993

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:32:05