2010-10-11 99 views
26

「默認」我的意思是隻使用類的[Serializable]屬性。我想說,不,靜態字段不會被序列化,但我不完全確定。在C#中的「默認」序列化序列化靜態字段?

+0

我很欣賞這個問題b/c你可以很容易地爭辯(作爲回答者)靜態字段不屬於任何實例。但是,如果.NET中的Type哲學的類型和實例沒有被正確理解,那麼一旦反過來也可以爭辯說靜態字段屬於每個實例。主要是B/C就是這樣 - 一種哲學。 .NET文檔沒有明確地澄清這個關於序列化的問題,它應該這樣做。 – outbred 2014-12-03 23:03:21

回答

27

否;靜態字段不會被序列化。

.Net序列化序列化實例;靜態字段不屬於一個實例。

+0

謝謝,這幾乎是我想澄清的! – 2010-10-11 03:29:06

+2

不幸的是,[SerializableAttribute文檔](http://msdn.microsoft.com/en-us/library/system.serializableattribute%28v=vs.100%29.aspx)說「一個類型中的所有公共和私有字段由SerializableAttribute標記的內容默認爲序列化「,而不具體指靜態字段。是否有文檔支持靜態字段未被序列化的事實? – ALEXintlsos 2014-03-18 18:25:58

+2

@ALEXintlsos:序列化的整個概念是序列化一個實例。存儲靜態字段是沒有意義的。 – SLaks 2014-03-18 18:28:43