TypeCodeDomSerializer.Serialize Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 true
se 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. |