Мы сериализуем / десериализуем класс из XML, но в классе есть свойства и поля, которые мы хотим исключить.
Атрибуты System.NonSerialized и System.Xml.Serialization.XmlIgnore , похоже, работают, но в чем разница между ними? Кажется, мы можем использовать XmlIgnore для любых свойств или полей класса. Но NonSerialized можно использовать только для полей. Есть ли причина не использовать XmlIgnore в каждом случае, и если да, то какова цель атрибута NonSerialized и почему существует разница в использовании?
Это разрешено:
<System.NonSerialized()> _
Public Foo As String
Это разрешено:
<System.Xml.Serialization.XmlIgnore()> _
Public Foo As String
Это разрешено:
<System.Xml.Serialization.XmlIgnore()> _
Public Property Bar() As String
Get
Return _Bar
End Get
Set(ByVal value As String)
_Bar = value
End Set
End Property
Но это не разрешено:
<System.NonSerialized()> _
Public Property Bar() As String
Get
Return _Bar
End Get
Set(ByVal value As String)
_Bar = value
End Set
End Property