2011-04-13 94 views
3

什麼時候應該用[Serializable]屬性將類標記爲可序列化?文件說這個班不應該被遺傳。但是,我已經將這個屬性與XmlInclude屬性結合使用,以便我可以序列化我的派生類。這是不正確的?序列化和屬性

我正在使用XmlSerializer和StreamWriter類來序列化我的對象。

此外,我的理解告訴我,任何公共屬性(get和set)都將被序列化,其他字段將被忽略。這是否正確?

任何指導,將不勝感激。

感謝

回答

2

我什麼時候應該標記一個類爲 序列化與[Serializable接口] 屬性?文檔說 該類不應該被繼承。 但是,我已將 與屬性XmlInclude 結合使用此屬性,所以我也可以序列化我的 派生類。這是 不正確?

我正在使用XmlSerializer和 StreamWriter類來序列化我的 對象。

您從不需要用於XML序列化的[Serializable]屬性。它僅用於序列化與格式化(例如BinaryFormatterSoapFormatter

而且,我的理解告訴我,任何公共屬性(獲取和設置)將被序列化,其他領域都將被忽略。這是否正確?

這是正確的。只有公共讀/寫屬性是序列化的,而不是字段。

0

XmlSerializer不檢查此標誌;答案是「當使用BinaryFormatter(或其他一些;不是很多)而不實現ISerializable時」。

大多數串行器不使用此標誌。