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 метода.
| задачи | Description |
|---|---|
| Начальное значение контекста | Контекст сериализации инициализирован с данными, включая RootContext и CodeTypeDeclaration |
| Сериализация элементов | Serialize Далее пошаговые инструкции по всем членам и вызовамSerializeToExpression. Так как сериализация выполняется оппортунистически SerializeToExpression, это гарантирует, что сериализация не выполняется дважды. |
| Корневая сериализация | Затем корневой объект сериализуется, а его операторы добавляются в коллекцию инструкций. |
| Интеграция инструкций | После сериализации всех объектов метод упорядочивает Serialize операторы и добавляет их в метод, возвращенный из GetInitializeMethod. Наконец, конструктор создается, который вызывает все методы, возвращаемые из GetInitializeMethod. |
-
В следующей таблице показаны объекты Serialize , которые метод помещает в стек контекста.
| Instance | Description |
|---|---|
| TypeCodeDomSerializer | Этот сериализатор. Производные классы могут оказаться полезными для добавления общедоступных свойств в этот класс. |
| CodeTypeDeclaration | Созданный тип. Большинству объектов не требуется прямой доступ к этому. |