Этапы процесса сериализации
При вызове метода Serialize для модуля форматирования сериализация объекта осуществляется в следующей последовательности:
Выполняется проверка для определения, имеется ли у модуля форматирования суррогатный селектор. Если такой селектор обнаружен, выполняется проверка, обрабатывает ли суррогатный селектор объекты указанного типа. Если селектор обрабатывает объекты такого типа, для суррогатного селектора вызывается ISerializable.GetObjectData.
Если суррогатный селектор отсутствует или не обрабатывает объекты такого типа, объект проверяется на наличие атрибута Serializable. Если такой атрибут отсутствует, выдается SerializationException.
Если объект отмечен правильным атрибутом, проверяется, реализует ли объект интерфейс ISerializable. Если объект такой интерфейс реализует, для него вызывается GetObjectData.
Если объект не реализует интерфейс ISerializable, используется политика сериализации по умолчанию, при которой сериализуются все поля, не отмеченные NonSerialized.
См. также
Другие ресурсы
Двоичная сериализация
Remote Objects
XML- и SOAP-сериализация