我正在將 XML 字串反序列化為類,我在下面發布了整個代碼。
<xmlinterface>
<kostenvoranschlaege>
<kostenvoranschlag>
<kvID>1227086</kvID>
<kvRefID/>
<intKvID/>
<status>5</status>
</kostenvoranschlag>
<kostenvoranschlag>
<kvID>1227144</kvID>
<kvRefID/>
<intKvID/>
<status>5</status>
</kostenvoranschlag>
<kostenvoranschlag>
<kvID>1252144</kvID>
<kvRefID/>
<intKvID/>
<status>2</status>
</kostenvoranschlag>
<kostenvoranschlag>
我想將類名“kostenvoranschlag”重命名為不同的名稱,例如“class kostenvoranschlagVersion1”。
但是,這會破壞解決方案。在這一行中,“nKVs.kostenvoranschlaege”計數為 0,而通常為 16:
For Each k As kostenvoranschlag In nKVs.kostenvoranschlaege
所以我認為它需要這個特定的名稱“kostenvoranschlag”。
所以我在課堂上添加了以下內容:
Public Class kostenvoranschlagVersion1
<XmlElement("kostenvoranschlag")>
它仍然不起作用。
如果我保持類名不變并且只添加具有相同名稱的 XMLElement,它也不起作用:
Public Class kostenvoranschlag
<XmlElement("kostenvoranschlag")>
所以我猜 XmlElement 標簽本身就是錯誤的。
謝謝!
編碼:
Imports System.IO
Imports System.Text
Imports System.Xml.Serialization
Public Class Form1
'<xmlinterface><kostenvoranschlaege><kostenvoranschlag><kvID>1227086</kvID><kvRefID></kvRefID><intKvID></intKvID><status>5</status></kostenvoranschlag><kostenvoranschlag>
Public Class kostenvoranschlag
Public Property kvID As Integer
Public Property kvRefID As String
Public Property intKvID As String
Public Property status As Integer
End Class
<XmlRoot("xmlinterface")>
Public Class xmlinterface
<XmlArray("kostenvoranschlaege")>
Public kostenvoranschlaege() As kostenvoranschlag
End Class
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim sXML As String
sXML = getTheXMLString()
Dim serializer As New XmlSerializer(GetType(xmlinterface))
Dim xmlstream = New MemoryStream(Encoding.UTF8.GetBytes(sXML))
xmlstream.Position = 0
Dim nKVs As xmlinterface = serializer.Deserialize(xmlstream)
For Each k As kostenvoranschlag In nKVs.kostenvoranschlaege
If k.status = 2 Then
Stop
End If
Next
' For Each Node As Xml.XmlNode In XMLRead.SelectNodes
Dim breakpointhere = 1
End Sub
End Class
uj5u.com熱心網友回復:
我知道了:
kostenvoranschlag 類不需要 XML 型別宣告,所以它會保持這樣:
Public Class kostenvoranschlag_Version1
Public Property kvID As Integer
Public Property kvRefID As String
Public Property intKvID As String
Public Property status As Integer
End Class
但是父母需要修復:
<XmlRoot("xmlinterface")>
Public Class xmlinterface
<XmlArray("kostenvoranschlaege")>
<XmlArrayItem("kostenvoranschlag")>
Public kostenvoranschlaege() As kostenvoranschlag_Version1
End Class
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/525267.html
