TypeCodeDomSerializer.Serialize Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Serialisiert den Objektstamm durch das Erstellen einer neuen Typdeklaration, die den Stamm definiert.
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
Parameter
- manager
- IDesignerSerializationManager
Der Serialisierungs-Manager, der für die Serialisierung verwendet werden soll.
- root
- Object
Das zu serialisierende Objekt.
- members
- ICollection
Optionale Auflistung der Member. Kann null
oder leer sein.
Gibt zurück
Eine CodeTypeDeclaration, die das Stammobjekt definiert.
Ausnahmen
manager
oder root
ist null
.
Hinweise
Die Serialize -Methode serialisiert das angegebene Stammobjekt und die optionale Auflistung von Membern, um eine neue Typdefinition zu erstellen. Wenn die members
Auflistung Werte enthält, werden diese Werte serialisiert. Werte selbst können entweder als Membervariablen oder als lokale Variablen serialisiert werden. Diese Ermittlung erfolgt durch Suchen nach einer Extendereigenschaft für das -Objekt namens GenerateMember
. Wenn true
, wird ein Member generiert. Andernfalls wird eine lokale Variable generiert. Der Einfachheit halber kann die members
Auflistung das Stammobjekt enthalten. In diesem Fall wird das Stammobjekt nicht auch als Member oder lokale Variable hinzugefügt.
Der Name des zurückgegebenen Typs wird dem Namen des Stammobjekts entnommen, wenn es sich um ein benanntes Objekt handelt. Andernfalls wird ein Name aus dem einfachen Typnamen der Stammklasse erstellt.
Die folgende Tabelle zeigt die Aufgaben, die von der Standardimplementierung der Serialize Methode ausgeführt werden.
Aufgabe | BESCHREIBUNG |
---|---|
Kontext-Seeding | Der Serialisierungskontext wird mit Daten initialisiert, einschließlich der RootContext und CodeTypeDeclaration |
Memberserialisierung | Serialize Führt als Nächstes alle Member durch und ruft aufSerializeToExpression. Da die Serialisierung opportunistisch in SerializeToExpressionerfolgt, stellt dies sicher, dass die Serialisierung nicht zweimal erfolgt. |
Stammserialisierung | Als Nächstes wird das Stammobjekt serialisiert, und seine Anweisungen werden der Anweisungsauflistung hinzugefügt. |
Anweisungsintegration | Nachdem alle -Objekte serialisiert wurden, sortiert die Serialize -Methode die -Anweisungen und fügt sie einer Methode hinzu, die von GetInitializeMethodzurückgegeben wird. Schließlich wird ein Konstruktor erstellt, der alle von GetInitializeMethodzurückgegebenen Methoden aufruft. |
-
Die folgende Tabelle zeigt die Objekte, die die Serialize Methode auf dem Kontextstapel platziert.
Instanz | BESCHREIBUNG |
---|---|
TypeCodeDomSerializer | Dieses Serialisierer. Das Ableiten von Klassen kann es hilfreich finden, dieser Klasse öffentliche Eigenschaften hinzuzufügen. |
CodeTypeDeclaration | Der zu erstellende Typ. Die meisten Objekte benötigen keinen direkten Zugriff darauf. |