|
Язык программирования С# 2005 и платформа .NET 2.0.Указанный интерфейс очень прост, поскольку он определяет единственный метод, GetObjectData(). // Для настройки процесса сериализации реализуйте ISerializable. public interface ISerializable { Pvoid GetObjectData(SerializationInfo info, StreamingContext context); } Метод GetObjectData() вызывается форматтером в процессе сериализации автоматически. Реализация этого метода предоставляет через входной параметр SerializationInfo серию пар имен и значений, которые (обычно) соответствуют полям данных того объекта, который следует сохранить. Тип SerializationInfo определяет перегруженный метод AddValue(), имеющий множество вариаций, а также небольшой набор свойств, которые позволяют читать и устанавливать имя типа, имя определяющего компоновочного блока и значение счетчика членов. Вот фрагмент соответствующего программного кода. public sealed class SerializationInfo: object { Ppublic SerializationInfo(Type type, IFormatterConverter converter); Ppublic string AssemblyName { get; set; } Ppublic string FullTypeName { get; set; } Ppublic int MemberCount { get; } Ppublic void AddValue(string name, short value); Ppublic void AddValue(string name, UInt16 value); Ppublic void AddValue(string name, int value); P } Типы, реализующие интерфейс ISerializable, должны также определять специальный конструктор в соответствии со следующим шаблоном. // Следует предложить пользовательский конструктор следующего вида, // чтобы среда выполнения могла установить состояние вашего объекта. [Serializable] class SomeClass: ISerializable { Pprivate SomeClass(SerializationInfo si, StreamingContext ctx) {} P } Обратите внимание на то, что для области видимости этого конструктора указано private ...» |
Код для вставки книги в блог HTML
phpBB
текст
|
|