【发布时间】:2017-05-10 15:22:14
【问题描述】:
我有以下 XML,我一生都无法弄清楚反序列化的类会是什么样子。
<?xml version="1.0" encoding="utf-16"?>
<Root>
<AL>
<AcctName>Test</AcctName>
<RetentionCodes>
<RetentionCode Del="N">ZZZZZ</RetentionCode>
<RetentionCode Del="N">XXXXX</RetentionCode>
</RetentionCodes>
</AL>
</Root>
到目前为止,我的课程是这样的:
<Serializable(), XmlRoot("Root")>
Public Class clsRecord Inherits clsFunctions(Of clsRecord)
Private m_AL As clsAL = Nothing
<XmlElement("AL")>
Public Property AL() As clsAL
Get
Return m_AL
End Get
Set(ByVal value As clsAL)
m_AL = value
End Set
End Property
Public Sub New()
End Sub
End Class
Public Class clsAL Inherits clsFunctions(Of clsAL)
Private m_AcctName As String = String.Empty
Public Property AcctName() As String
Get
Return m_AcctName
End Get
Set(ByVal value As String)
m_AcctName = value.ToString
End Set
End Property
<XmlArrayItem("RetentionCode")>
Public Property RetentionCodes As List(Of String)
End Class
我可以获取节点值,但我不确定如何将 DEL 属性添加到类中,而不是创建一个单独的 RetentionCode 类。
【问题讨论】:
-
您使用的是哪个版本的 Visual Studio?
-
@Steve Sirica,多年来,我们一直在摆脱变量和类名的旧时尚前缀,就像你拥有它们一样。只需在不带前缀的情况下命名它们,您就有更好的可读性。
-
是的,RetentionCode 将是一个类,因为
DEL将是一个属性。这里的 XML 将引用主类上的一个属性,它是一个List(Of RetentionCode),因此有多个条目。 -
我最终改变了方向。我最终用 3 个元素使它成为自己的对象。罐头使用一个属性。一切正常。一切都很好。感谢您的意见!
标签: xml vb.net serialization