TypeCodeDomSerializer.Serialize Metoda

Definice

Serializuje kořen objektu vytvořením deklarace nového typu, která definuje kořen.

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

Parametry

manager
IDesignerSerializationManager

Správce serializace, který se má použít pro serializaci.

root
Object

Objekt serializovat.

members
ICollection

Volitelná kolekce členů. Může být null nebo prázdný.

Návraty

Objekt CodeTypeDeclaration , který definuje kořenový objekt.

Výjimky

manager nebo root je null.

Poznámky

Metoda Serialize serializuje daný kořenový objekt a volitelnou kolekci členů k vytvoření nové definice typu. members Pokud kolekce obsahuje hodnoty, jsou tyto hodnoty serializovány. Samotné hodnoty se můžou serializovat jako členské proměnné nebo místní proměnné. Toto určení se provádí vyhledáním vlastnosti extenderu u objektu s názvem GenerateMember. Pokud truese vygeneruje člen. V opačném případě se vygeneruje místní proměnná. Pro usnadnění members může kolekce obsahovat kořenový objekt. V tomto případě se kořenový objekt nepřidá také jako člen nebo místní proměnná.

Název vráceného typu je převzat z názvu kořenového objektu, pokud se jednalo o pojmenovaný objekt. Pokud ne, název se vytvoří z jednoduchého názvu typu kořenové třídy.

Následující tabulka ukazuje úlohy prováděné výchozí implementací Serialize metody.

Úkol Popis
Kontextové seedování Kontext serializace je inicializován s daty RootContext , včetně a CodeTypeDeclaration
Serializace členů Serialize Dále provede všechny členy a zavolá SerializeToExpression. Vzhledem k tomu, že serializace se provádí oportunisticky v SerializeToExpression, to zajišťuje, že serializace není provedena dvakrát.
Kořenová serializace Dále je kořenový objekt serializován a jeho příkazy jsou přidány do kolekce příkazů.
Integrace příkazů Jakmile jsou všechny objekty serializovány, Serialize metoda seřídí příkazy a přidá je do metody vrácené z GetInitializeMethod. Nakonec je vyfabrikovaný konstruktor, který volá všechny metody vrácené z GetInitializeMethod.

-

Následující tabulka ukazuje objekty, které Serialize metoda umístí do zásobníku kontextu.

Instance Description
TypeCodeDomSerializer Tento serializátor. Odvozování tříd může být užitečné přidat veřejné vlastnosti do této třídy.
CodeTypeDeclaration Typ, který se vytváří. Většina objektů k tomu přímý přístup nepotřebuje.

Platí pro

Viz také