TypeCodeDomSerializer.Serialize Metod

Definition

Serialiserar objektroten genom att skapa en ny typdeklaration som definierar roten.

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

Parametrar

manager
IDesignerSerializationManager

Serialiseringshanteraren som ska användas för serialisering.

root
Object

Objektet som ska serialiseras.

members
ICollection

Valfri samling medlemmar. Kan vara null eller tom.

Returer

En CodeTypeDeclaration som definierar rotobjektet.

Undantag

manager eller root är null.

Kommentarer

Metoden Serialize serialiserar det angivna rotobjektet och den valfria samlingen medlemmar för att skapa en ny typdefinition. Om samlingen members innehåller värden serialiseras dessa värden. Själva värdena kan serialiseras som antingen medlemsvariabler eller lokala variabler. Den här bestämningen görs genom att söka efter en extender-egenskap för objektet med namnet GenerateMember. Om truegenereras en medlem. Annars genereras en lokal variabel. För enkelhetens members skull kan samlingen innehålla rotobjektet. I det här fallet läggs rotobjektet inte också till som en medlem eller lokal variabel.

Namnet på den returnerade typen hämtas från rotobjektets namn, om det var ett namngivet objekt. Annars skapas ett namn från rotklassens enkla typnamn.

I följande tabell visas de uppgifter som utförs av standardimplementeringen Serialize av metoden.

Uppgift Description
Kontextsåddning Serialiseringskontexten initieras med data inklusive RootContext och CodeTypeDeclaration
Seriellisering av medlemmar Serialize Därefter går alla medlemmar och anropar SerializeToExpression. Eftersom serialiseringen utförs opportunistiskt i SerializeToExpressionsäkerställer detta att serialiseringen inte görs två gånger.
Rot serialisering Därefter serialiseras rotobjektet och dess instruktioner läggs till i instruktionssamlingen.
Instruktionsintegrering När alla objekt har serialiserats Serialize , beställer metoden uttrycken och lägger till dem i en metod som returneras från GetInitializeMethod. Slutligen är en konstruktor fabricerad som anropar alla metoder som returneras från GetInitializeMethod.

-

I följande tabell visas de objekt som Serialize metoden placerar i kontextstacken.

Instance Description
TypeCodeDomSerializer Den här serialiseraren. Härledda klasser kan ha nytta av att lägga till offentliga egenskaper i den här klassen.
CodeTypeDeclaration Den typ som skapas. De flesta objekt behöver inte direkt åtkomst till detta.

Gäller för

Se även