クラス内のプロパティに属性を適用しXmlAttribute
て、プロパティを要素としてではなく属性として扱うことを示す必要があります。例えば:
Public Class div
<XmlAttribute()> _
Public Property [class] As String
Get
Return _class
End Get
Set(value As String)
_class = value
End Set
End Property
Private _class As String
Public Property a As a
Get
Return _a
End Get
Set(value As a)
_a = value
End Set
End Property
Private _a As a
Public Property strong As String
Get
Return _strong
End Get
Set(value As String)
_strong = value
End Set
End Property
Private _strong As String
End Class
Public Class a
<XmlAttribute()> _
Public Property href As String
Get
Return _href
End Get
Set(value As String)
_href = value
End Set
End Property
Private _href As String
End Class
通常、プロパティにあるように、プロパティ名を角括弧で囲む必要はありませんclass
。この例でこれが必要な唯一の理由は、"Class" という単語が VB.NET 言語の特別なキーワードであるためです。括弧は、VB がそれをキーワードの典型的な意味としてではなく、識別子名として扱うことを強制します。括弧なしで同じことを行う別の方法は、プロパティに別の名前を付けてから、XML で「クラス」という名前を強制することです。
Public Class div
<XmlAttribute("class")> _
Public Property MyClassAttribute As String
' ...
End Property
End Class
いずれにせよ、div
オブジェクトに逆シリアル化すると、次のように読み取ることができます。
Dim myDiv As div = '...
Dim theClassOfMyDiv As String = myDiv.class
Dim theHref As String = myDiv.a.href
' etc.