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
相关产品推荐
相关产品推荐

