Chúng tôi đang sắp xếp/deserializing một lớp từ XML nhưng có các thuộc tính và các trường trong lớp mà chúng ta muốn loại trừ.Sự khác biệt giữa NonSerialized và Xml.Serialization.XmlIgnore?
Các System.NonSerialized và System.Xml.Serialization.XmlIgnore thuộc tính dường như thực hiện công việc nhưng sự khác biệt giữa chúng là gì? Có vẻ như chúng tôi có thể sử dụng XmlIgnore trên một trong hai thuộc tính hoặc trường của lớp. Nhưng NonSerialized chỉ có thể được sử dụng trên các trường. Có lý do nào không sử dụng XmlIgnore trong mọi trường hợp, và nếu vậy mục đích của NonSerialized thuộc tính là gì và tại sao sự khác biệt trong cách sử dụng?
này được phép:
<System.NonSerialized()> _
Public Foo As String
này được phép:
<System.Xml.Serialization.XmlIgnore()> _
Public Foo As String
này được phép:
<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
Nhưng điều này là không được phép:
<System.NonSerialized()> _
Public Property Bar() As String
Get
Return _Bar
End Get
Set(ByVal value As String)
_Bar = value
End Set
End Property