Конфигурирование объектов для сериализации
Конфигурирование объектов для сериализации
Чтобы сделать объект доступным сервису сериализации .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.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Конфигурирование
Конфигурирование В качестве обобщения всего сказанного выше в заключение этого очерка я размещаю свой конфигурационный файл ~/.zshrc, прокомментированный, по мере сил, подробно. Этот конфиг существует с 2001 года, кочуя с машина на машину, из системы в систему, постоянно
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 и его клонами. Если у вас именно такой дистрибутив, то с установкой
14.3.1 Конфигурирование kppp
14.3.1 Конфигурирование kppp Чтобы начать конфигурирование, нажмите кнопку Настройка. Откроется диалоговое окно конфигурации kppp (рис. 14.3). Рис. 14.3. Окно настройки kpppНачать надо, конечно, с создания новой учетной записи соединения с провайдером услуг Интернета, для чего
17.1.3. Конфигурирование IpChains
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 в каталоге исходных кодов. Этот файл можно
4.1.2. Конфигурирование Х.Оrg
4.1.2. Конфигурирование Х.Оrg Сначала ми рассмотрим настройку X.Org вручную - с помощью конфигурационного файла, а потом с помощью
Конфигурирование
Конфигурирование Эта версия сервера содержит новый менеджер конфигурации, единый для всех платформ. Все настройки теперь хранятся в файле firebird.conf. Этот файл содержит значительно больше параметров, чем ibconfig в предыдущих версиях. Например, в него вынесены параметры
Основы сериализации объектов
Основы сериализации объектов Термин сериализация означает процесс переноса состояния объекта в поток, Соответствующая сохраненная последовательность данных содержит всю информацию, необходимую для реконструкции объекта, если в дальнейшем возникает необходимость в
Выбор формата сериализации
Выбор формата сериализации После конфигурации типов для участия в схеме сериализации .NET следующим шагом является выбор формата, который должен использоваться при сохранении объектного графа. В .NET 2.0 вы имеете на выбор три варианта.• BinaryFormatter • SoapFormatter• XmlSerializerТип
Настройка процесса сериализации
Настройка процесса сериализации В большинстве случаев типовая схема сериализации, предлагаемая платформой .NET, будет именно тем, что требуется. Тогда нужно просто применить атрибут [Serializable] и передать объектный граф выбранному средству форматирования. Но в некоторых
Настройка параметров сериализации с помощью ISerializable
Настройка параметров сериализации с помощью ISerializable Объекты, обозначаемые атрибутом [Serializable], имеют возможность реализовать интерфейс ISerializable. В этом случае вы можете "участвовать" в процессе сериализации, выполняя любое предварительное или последующее форматирование
Настройка параметров сериализации с помощью атрибутов
Настройка параметров сериализации с помощью атрибутов Хотя реализация интерфейса ISerializable в .NET 2.0 все еще допустима, для настройки процесса сериализации теперь более предпочтительным считается определение методов, наделенных одним из целого ряда новых атрибутов,
Конфигурирование
Конфигурирование С давних лет повелась традиция, что уважающий себя дистрибутив должен иметь не только собственный инсталлятор, но и собственный конфигуратор. И в основании её, между прочим, один из участников нашего сравнения – openSUSE, которая в далёком уже 1996 году