Estamos serializando/deserializando una clase de XML pero hay propiedades y campos en la clase que deseamos excluir.Diferencia entre NonSerialized y Xml.Serialization.XmlIgnore?
El System.NonSerialized y System.Xml.Serialization.XmlIgnore atributos parecen hacer el trabajo, pero ¿cuál es la diferencia entre ellos? Parece que podemos usar XmlIgnore en cualquiera de las propiedades o campos de la clase. Pero NonSerialized solo se puede usar en los campos. ¿Hay alguna razón para no usar XmlIgnore en todos los casos y, de ser así, cuál es el propósito del atributo NonSerialized y por qué la diferencia en el uso?
Esto está permitido:
<System.NonSerialized()> _
Public Foo As String
Esto está permitido:
<System.Xml.Serialization.XmlIgnore()> _
Public Foo As String
Esto está permitido:
<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
Pero esto no está permitido:
<System.NonSerialized()> _
Public Property Bar() As String
Get
Return _Bar
End Get
Set(ByVal value As String)
_Bar = value
End Set
End Property