Выборочная сериализация
Класс часто содержит поля, которые не должны быть сериализованы. Например, рассмотрим класс, содержащий идентификатор потока в переменной-члене. При десериализации класса поток, в котором хранился идентификатор во время сериализации класса, может уже не использоваться, поэтому сериализация такого значения не имеет смысла. Предотвратить сериализацию переменных-членов можно, маркировав их атрибутом NonSerialized следующим образом.
[Serializable]
public class MyObject
{
public int n1;
[NonSerialized] public int n2;
public String str;
}
Для объекта, содержащего важные для обеспечения безопасности данные, следует, если это возможно, запретить сериализацию. Если же для данного объекта сериализация необходима, примените к соответствующим полям с важной информацией атрибут NonSerialized. Учтите, если не исключить эти поля из сериализации, хранимые в них данные будут предоставлены любому коду с разрешением сериализации. Дополнительные сведения о написании безопасного кода сериализации см. в разделе Безопасность и сериализация.
См. также
Другие ресурсы
Двоичная сериализация
Remote Objects
XML- и SOAP-сериализация
Security and Serialization