2010-10-11 2 views
26

По умолчанию я имею в виду использование атрибута [Serializable] в классе. Я хочу сказать, что нет, статические поля не будут сериализованы, но я не совсем уверен.Сериализация «по умолчанию» в C# сериализует статические поля?

+0

Я ценю этот вопрос b/c, вы можете легко утверждать (как это делает автоответчик), что статические поля не принадлежат ни одному экземпляру. Однако однажды можно также утверждать, что статические поля принадлежат каждому экземпляру, если тип и экземпляры философии типа в .NET не понятны должным образом. В основном b/c именно это - философия. В документации .NET явно не уточняется этот вопрос в отношении сериализации, что и должно быть. – outbred

ответ

27

Нет; статические поля не сериализуются.

. Сериализация сериализации серий; статические поля не принадлежат экземпляру.

+0

Спасибо, это в значительной степени то, что я хотел уточнить! –

+2

К сожалению, [Документация по SerializableAttribute] (http://msdn.microsoft.com/en-us/library/system.serializableattribute%28v=vs.100%29.aspx) гласит: «Все общедоступные и частные поля типа , отмеченные символом SerializableAttribute, сериализуются по умолчанию ", не ссылаясь конкретно на статические поля. Есть ли документация, подтверждающая, что статические поля не сериализованы? – ALEXintlsos

+2

@ALEXintlsos: вся концепция сериализации - это сериализация экземпляра. Было бы бессмысленно хранить статические поля. – SLaks

Смежные вопросы