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 | Создаваемый тип. Большинству объектов не требуется прямой доступ к этому объекту. |