0
这是序列化和反序列化XML对象Vb.Net实例化属性的类这是一个不同类
<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
这可以正确处理反序列化的目的数组,但现在我想正确创建此对象,以便我可以将其序列化回XML对象。
Dim anotherTest As clsSMsgRequestMessage = New clsSMsgRequestMessage()
Dim testOrderPart1 As New RequestMessageOrderaddOrderpart
anotherTest.clientid = "data"
anotherTest.orderpriority = "data"
anotherTest.ordertype = "data"
anotherTest.transactionid = "data"
anotherTest.vehicleid = "data"
anotherTest.numberoforderparts = "data"
testOrderPart1.loadtype = "data"
testOrderPart1.location = "data"
testOrderPart1.operation = "data"
testOrderPart1.orderpartnumber = "data"
anotherTest.orderpart(0) = testOrderPart1
这里的最后一行不起作用,因为anotherTest.orderpart(0)还没有实例化。但我不知道如何实例化它,因为
anotherTest.orderpart(0) = New RequestMessageOrderaddOrderPart
仍然带着“未设置对象实例的对象引用”。
anotherTest.orderpart = New RequestMessageOrderaddOrderPart
回来了“类型的值不能转换为“的一维数组”
我觉得我在正确的轨道上与由自身实例它像我有做“ testOrderPart1',但我不知道如何链接到我的另一个测试。订单部分
请帮助!
哦,非常感谢!我必须将其设置为这样的固定尺寸吗?基本上XML消息将会有可变数量的“部分”回来,我不会知道。我想他们永远不会超过20个左右的零件 - 只需初始化一个庞大的阵列,然后经常不使用它们中的大部分就可以了。 – Brandon
我强烈建议使用'List(的RequestMessageOrderaddOrderpart)'而不是阵列 – jbabey
请检查我的更新。 – MarcinJuraszek