Поделиться через


TypeCodeDomSerializer.Serialize Метод

Определение

Выполняет сериализацию корня объекта путем создания объявления нового типа, определяющего корень.

public:
 virtual System::CodeDom::CodeTypeDeclaration ^ Serialize(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::Object ^ root, System::Collections::ICollection ^ members);
public virtual System.CodeDom.CodeTypeDeclaration Serialize (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object root, System.Collections.ICollection members);
public virtual System.CodeDom.CodeTypeDeclaration Serialize (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object root, System.Collections.ICollection? members);
abstract member Serialize : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj * System.Collections.ICollection -> System.CodeDom.CodeTypeDeclaration
override this.Serialize : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj * System.Collections.ICollection -> System.CodeDom.CodeTypeDeclaration
Public Overridable Function Serialize (manager As IDesignerSerializationManager, root As Object, members As ICollection) As CodeTypeDeclaration

Параметры

manager
IDesignerSerializationManager

Диспетчер сериализации для использования при выполнении сериализации.

root
Object

Объект для сериализации.

members
ICollection

Необязательная коллекция элементов. Возможно значение null или пустое значение.

Возвращаемое значение

CodeTypeDeclaration, определяющий корневой объект.

Исключения

Параметр manager или root имеет значение null.

Комментарии

Метод Serialize сериализует заданный корневой объект и необязательную коллекцию элементов для создания нового определения типа. members Если коллекция содержит значения, эти значения сериализуются. Сами значения могут сериализоваться как переменные-члены или локальные переменные. Это определение выполняется путем поиска свойства расширителя в объекте с именем GenerateMember. Если trueзадано значение , создается элемент . В противном случае создается локальная переменная. Для удобства members коллекция может содержать корневой объект . В этом случае корневой объект также не добавляется в качестве члена или локальной переменной.

Имя возвращаемого типа берется из имени корневого объекта, если это был именованный объект. В противном случае имя создается на основе простого имени типа корневого класса.

В следующей таблице показаны задачи, выполняемые реализацией метода по умолчанию Serialize .

Задача Описание
Начальное значение контекста Контекст сериализации инициализируется данными RootContext , включая и CodeTypeDeclaration
Сериализация элементов Serialize Затем выполняет обход всех членов и вызывает .SerializeToExpression Так как сериализация выполняется оппортунистически в SerializeToExpression, это гарантирует, что сериализация не будет выполнена дважды.
Корневая сериализация Затем сериализуется корневой объект и его инструкции добавляются в коллекцию инструкций.
Интеграция инструкций После сериализации всех объектов метод упорядочивает инструкции и добавляет их в метод, Serialize возвращаемый из GetInitializeMethod. Наконец, создается конструктор, который вызывает все методы, возвращаемые из GetInitializeMethod.

-

В следующей таблице показаны объекты, которые Serialize метод помещает в контекстный стек.

Экземпляр Описание
TypeCodeDomSerializer Этот сериализатор. Производные классы могут оказаться полезными для добавления открытых свойств в этот класс.
CodeTypeDeclaration Создаваемый тип. Большинству объектов не требуется прямой доступ к этому объекту.

Применяется к

См. также раздел