2012-07-03 80 views
2

什麼會阻止類可序列化?什麼會阻止類可序列化?

我知道一個類默認是不可序列化的,因爲啓用序列化會引入開銷。但是某些類別的特徵是否會阻止它們被序列化?

如果相關,我特別想到XML序列化。

+1

實際上,沒有將類標記爲'Serializable'的開銷(請參閱http://stackoverflow.com/questions/3731224/does-marking-objects-as-serializable-incur-overhead)。對於XML序列化,開銷甚至更少,因爲「XMLSerializer」在公共屬性上工作時甚至不需要使用屬性。您可能希望添加屬性來控制序列化/反序列化過程,但這些屬性也不會增加執行開銷,儘管它們只佔用少量元數據空間。 –

回答

7

存在無法序列化的對象。如果對象包含外部資源的句柄,那麼通常不能以有意義的方式序列化這些句柄。

實例:

  • 打開TCP連接。
  • 交易對象。
  • 打開文件句柄。
+3

也可以將'ArrayList'或者'List ','Type'作爲一個屬性,任何標記爲[Obsolete]的數組,使用'ulong'值> = 9223372036854775808 ... [etc](http:// msdn。 microsoft.com/en-us/library/system.xml.serialization.xmlserializer) – user7116

相關問題