.net Net实例化一个类的属性,该类是另一个类的数组
这是为了序列化和反序列化Xml对象.net Net实例化一个类的属性,该类是另一个类的数组,.net,arrays,vb.net,instantiation,.net,Arrays,Vb.net,Instantiation,这是为了序列化和反序列化Xml对象 <XmlRoot("orderadd")> <Serializable()> _ Public Class clsSMsgRequestMessage <XmlElementAttribute()> Public Property ordertype() As String <XmlElementAttribute()> Public Property vehicleid() As String
<XmlRoot("orderadd")>
<Serializable()> _
Public Class clsSMsgRequestMessage
<XmlElementAttribute()> Public Property ordertype() As String
<XmlElementAttribute()> Public Property vehicleid() As String
<XmlElementAttribute()> Public Property orderpriority() As String
<XmlElementAttribute("orderpart")> Public Property orderpart() As RequestMessageOrderaddOrderpart()
<XmlAttributeAttribute()> Public Property clientid() As String
<XmlAttributeAttribute()> Public Property transactionid() As String
<XmlAttributeAttribute()> Public Property numberoforderparts() As String
Public Sub New()
End Sub
End Class
Public Class RequestMessageOrderaddOrderpart
<XmlElementAttribute()> Public Property operation() As String
<XmlElementAttribute()> Public Property location() As String
<XmlElementAttribute()> Public Property loadtype() As String
<XmlAttributeAttribute()> Public Property orderpartnumber() As String
Public Sub New()
End Sub
End Class
此处的最后一行不起作用,因为尚未实例化另一个Test.orderpart(0)。但我不知道如何实例化它,因为
anotherTest.orderpart(0) = New RequestMessageOrderaddOrderPart
仍然返回“对象引用未设置为对象的实例”
返回“类型的值无法转换为”的一维数组”
我认为我自己实例化它是正确的,就像我使用“testOrderPart1”一样,但我不知道如何将它链接到我的另一个Test.orderpart
请帮忙 您必须首先初始化数组属性:
anotherTest.orderpart = New RequestMessageOrderaddOrderPart(10) {}
10
是数组大小
之后,您可以设置第一个数组元素:
anotherTest.orderpart(0) = New RequestMessageOrderaddOrderPart
更新
但是,我认为您应该将属性声明更改为List(Of RequestMessageOrderaddOrderPart)
。对于列表,您不必指定项目数:
anotherTest.orderpart = New List(Of RequestMessageOrderaddOrderPart)()
添加项目非常简单:
anotherTest.orderpart.Add(new RequestMessageOrderaddOrderPart())
您仍然可以使用索引器获取/修改项目:
Dim firstItem = anotherTest.orderpart(0)
当然,必须首先使用Add
方法插入该项
List(Of T)
也可以用于序列化。噢,太酷了,谢谢!我必须把它设置成那样的固定尺寸吗?基本上,XML消息返回的“部分”数量是可变的,我不知道。我想他们永远不会有超过20个左右的部件-只需初始化一个巨大的数组,然后定期不使用其中的大部分就可以了吗?我强烈建议使用列表(RequestMessageOrderaddOrderpart)
而不是数组
anotherTest.orderpart.Add(new RequestMessageOrderaddOrderPart())
Dim firstItem = anotherTest.orderpart(0)