2010-10-11 69 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