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 nové deklarace 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, který se má serializovat.
- members
- ICollection
Volitelná kolekce členů. Může být nebo může být null prázdný.
Návraty
A 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ů vytvořit novou definici typu.
members Pokud kolekce obsahuje hodnoty, jsou tyto hodnoty serializovány. Samotné hodnoty mohou serializovat jako členské proměnné nebo místní proměnné. Toto určení se provádí hledáním rozšiřující vlastnosti objektu s názvem GenerateMember. Pokud truese vygeneruje člen. V opačném případě se vygeneruje místní proměnná. Pro usnadnění může members kolekce obsahovat kořenový objekt. V tomto případě není kořenový objekt přidán 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 | Description |
|---|---|
| Počáteční kontext | Kontext serializace se inicializuje s daty, včetně RootContextCodeTypeDeclaration |
| Serializace členů | Serialize Dále provede všechny členy a hovory SerializeToExpression. Vzhledem k tomu, že serializace se provádí oportunisticky v SerializeToExpression, to zajišťuje, že serializace není provedena dvakrát. |
| Serializace kořenového adresáře | 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 objedná příkazy a přidá je do metody vrácené z GetInitializeMethod. Nakonec je konstruktor zkonstruován, který volá všechny metody vrácené z GetInitializeMethod. |
-
Následující tabulka ukazuje objekty, které Serialize metoda umístí do kontextového zásobníku.
| Instance | Description |
|---|---|
| TypeCodeDomSerializer | Tento serializátor. Odvozené třídy mohou 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 nepotřebuje přímý přístup. |