Конфигурирование объектов для сериализации

Конфигурирование объектов для сериализации

Чтобы сделать объект доступным сервису сериализации .NET, достаточно пометить каждый связанный класс атрибутом [Serializable]. И это все (правда!). Если вы решите, что некоторые члены данного класса не должны (или, возможно, не могут) участвовать в процессе сериализации, обозначьте соответствующие поля атрибутом [NonSerialized]. Это может быть полезно тогда, когда в классе, предназначенном для сериализации, есть члены-переменные, которые запоминать не нужно (например, фиксированные или случайные значения, динамические данные и т.п.), и вы хотите уменьшить размеры сохраняемого графа.

Для начала вот вам класс Radio, обозначенный атрибутом [Serializable], за исключением одной переменной (radioID), которая помечена атрибутом [NonSerialized], и поэтому не будет сохраняться в указанном потоке данных.

[Serializable]

public class Radio {

 public bool hasTweeters;

 public bool hasSubWoofers;

 public double[] stationPresets;

 [NonSerialized]

 public string radioID = "XF-552RR6";

}

Класс JamesBondCar и базовый класс Car, также обозначенные атрибутом [Serializable], определяют следующие поля данных.

[Serializable]

public class Car {

 public Radio theRadio = new Radio();

 public bool isHatchBack;

}

[Serializable]

public class JamesBondCar: Car {

 public bool canFly;

 public bool canSubmerge;

}

Следует знать о том, что атрибут [Serializable] не наследуется. Таким образом, если вы получаете класс из типа, обозначенного атрибутом [Serializable], дочерний класс тоже следует обозначить атрибутом [Serializable], иначе он при сериализации сохраняться не будет. На самом деле все объекты в объектном графе должны обозначаться атрибутом [Serializable]. При попытке с помощью BinaryFormatter или SoapFormatter выполнить сериализацию объекта. не подлежащего сериализации, в среде выполнения генерируется исключение SerializationException.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

4.1.2. Конфигурирование Х.Оrg

Из книги Fedora 8 Руководство пользователя автора Колисниченко Денис Николаевич

4.1.2. Конфигурирование Х.Оrg Сначала ми рассмотрим настройку X.Org вручную - с помощью конфигурационного файла, а потом с помощью


14.3.1 Конфигурирование kppp

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

14.3.1 Конфигурирование kppp Чтобы начать конфигурирование, нажмите кнопку Настройка. Откроется диалоговое окно конфигурации kppp (рис. 14.3). Рис. 14.3. Окно настройки kpppНачать надо, конечно, с создания новой учетной записи соединения с провайдером услуг Интернета, для чего


Основы сериализации объектов

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Основы сериализации объектов Термин сериализация означает процесс переноса состояния объекта в поток, Соответствующая сохраненная последовательность данных содержит всю информацию, необходимую для реконструкции объекта, если в дальнейшем возникает необходимость в


Выбор формата сериализации

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

Выбор формата сериализации После конфигурации типов для участия в схеме сериализации .NET следующим шагом является выбор формата, который должен использоваться при сохранении объектного графа. В .NET 2.0 вы имеете на выбор три варианта.• BinaryFormatter • SoapFormatter• XmlSerializerТип


Настройка процесса сериализации

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Настройка процесса сериализации В большинстве случаев типовая схема сериализации, предлагаемая платформой .NET, будет именно тем, что требуется. Тогда нужно просто применить атрибут [Serializable] и передать объектный граф выбранному средству форматирования. Но в некоторых


Настройка параметров сериализации с помощью ISerializable

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

Настройка параметров сериализации с помощью ISerializable Объекты, обозначаемые атрибутом [Serializable], имеют возможность реализовать интерфейс ISerializable. В этом случае вы можете "участвовать" в процессе сериализации, выполняя любое предварительное или последующее форматирование


Настройка параметров сериализации с помощью атрибутов

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

Настройка параметров сериализации с помощью атрибутов Хотя реализация интерфейса ISerializable в .NET 2.0 все еще допустима, для настройки процесса сериализации теперь более предпочтительным считается определение методов, наделенных одним из целого ряда новых атрибутов,


17.1.3. Конфигурирование IpChains

Из книги Священные войны мира FOSS автора Федорчук Алексей Викторович

17.1.3. Конфигурирование IpChains Теперь приступим к настройке IPChains. Создайте цепочку, через которую пойдет весь трафик от провайдера: ipchains –N provipchains –A input –i eth0 –j prov Запретите ip-spoofing:ipchains –A prov –s 192.168.1.1/16 –1 –j DENY ipchains –A prov –s 127.0.0.1/8 –1 –j DENY Запретите Telnet снаружи: ipchains –A prov –p tcp


18.2. Конфигурирование ядра

Из книги автора

18.2. Конфигурирование ядра Итак, немного разобравшись в параметрах ядра, приступим к его конфигурированию. Однако перед тем как приступить, убедитесь, что у вас установлены исходники ядра и пакет заголовков:kernel-2.2.17-21mdk.i586.rpmkernel-headers-2.2.17-21mdk.i586.rpmЗатем перейдите в каталог,


20.5.2. Конфигурирование ядра

Из книги автора

20.5.2. Конфигурирование ядра Когда вы строите из исходников прикладную программу, первым шагом сборки обычно бывает выполнение сценария configure. Ядро тоже нужно конфигурировать. Его настройки находятся в текстовом файле .config в каталоге исходных кодов. Этот файл можно


6.1. Конфигурирование Samba

Из книги автора

6.1. Конфигурирование Samba Основным конфигурационным файлом для Samba является smb.conf, который можно найти в директории /etc/samba (в некоторых дистрибутивах это может быть каталог /etc). Кроме него в этой директории можно найти файл lmhosts, с помощью которого происходит преобразование


10.2. Конфигурирование wu-ftp-сервера

Из книги автора

10.2. Конфигурирование wu-ftp-сервера По моим наблюдениям самым распространенным FTP-сервером является wu-ftp (Washington University FTP Server), потому что он поставляется вместе с основными дистрибутивами Linux, в том числе Red Hat и его клонами. Если у вас именно такой дистрибутив, то с установкой


Конфигурирование

Из книги автора

Конфигурирование Эта версия сервера содержит новый менеджер конфигурации, единый для всех платформ. Все настройки теперь хранятся в файле firebird.conf. Этот файл содержит значительно больше параметров, чем ibconfig в предыдущих версиях. Например, в него вынесены параметры


Конфигурирование

Из книги автора

Конфигурирование В качестве обобщения всего сказанного выше в заключение этого очерка я размещаю свой конфигурационный файл ~/.zshrc, прокомментированный, по мере сил, подробно. Этот конфиг существует с 2001 года, кочуя с машина на машину, из системы в систему, постоянно


Конфигурирование

Из книги автора

Конфигурирование С давних лет повелась традиция, что уважающий себя дистрибутив должен иметь не только собственный инсталлятор, но и собственный конфигуратор. И в основании её, между прочим, один из участников нашего сравнения – openSUSE, которая в далёком уже 1996 году