Stiamo serializzando/deserializzando una classe da XML ma ci sono proprietà e campi nella classe che vogliamo escludere.Differenza tra NonSerialized e Xml.Serialization.XmlIgnore?
Il System.NonSerialized e System.Xml.Serialization.XmlIgnore attributi sembrano fare il lavoro, ma qual è la differenza tra loro? Sembra che possiamo utilizzare XmlIgnore su proprietà o campi della classe. Ma NonSerialized può essere utilizzato solo nei campi. C'è qualche ragione per non usare XmlIgnore in ogni caso, e in tal caso qual è lo scopo dell'attributo NonSerialized e perché la differenza nell'uso?
Ciò è consentito:
<System.NonSerialized()> _
Public Foo As String
Ciò è consentito:
<System.Xml.Serialization.XmlIgnore()> _
Public Foo As String
Ciò è consentito:
<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
Ma questo non è consentito:
<System.NonSerialized()> _
Public Property Bar() As String
Get
Return _Bar
End Get
Set(ByVal value As String)
_Bar = value
End Set
End Property