TypeCodeDomSerializer.Serialize Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Serialiseert de hoofdmap van het object door een nieuwe typedeclaratie te maken waarmee de hoofdmap wordt gedefinieerd.
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);
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
Parameters
- manager
- IDesignerSerializationManager
Het serialisatiebeheer dat moet worden gebruikt voor serialisatie.
- root
- Object
Het object dat moet worden geserialiseerd.
- members
- ICollection
Optionele verzameling leden. Kan null bevatten of leeg zijn.
Retouren
Een CodeTypeDeclaration die het hoofdobject definieert.
Uitzonderingen
manager of root is null.
Opmerkingen
De Serialize methode serialiseert het opgegeven hoofdobject en de optionele verzameling leden om een nieuwe typedefinitie te maken. Als de members verzameling waarden bevat, worden deze waarden geserialiseerd. Waarden zelf kunnen serialiseren als lidvariabelen of lokale variabelen. Deze bepaling wordt gedaan door te zoeken naar een extender eigenschap op het object genaamd GenerateMember. Als true, wordt er een lid gegenereerd. Anders wordt er een lokale variabele gegenereerd. Voor het gemak kan de members verzameling het hoofdobject bevatten. In dit geval wordt het hoofdobject niet ook toegevoegd als lid of lokale variabele.
De naam van het geretourneerde type wordt opgehaald uit de naam van het hoofdobject, als het een benoemd object is. Als dat niet het probleem is, wordt een naam gemaakt op basis van de eenvoudige typenaam van de hoofdklasse.
In de volgende tabel ziet u de taken die worden uitgevoerd door de standaard implementatie van de Serialize methode.
| Task | Beschrijving |
|---|---|
| Contexts seeding | De serialisatiecontext wordt geïnitialiseerd met gegevens, inclusief de RootContext en CodeTypeDeclaration |
| Serialisatie van leden | Serialize Vervolgens worden alle leden en oproepen SerializeToExpressionbegeleid. Omdat serialisatie opportunistisch SerializeToExpressionwordt uitgevoerd, zorgt dit ervoor dat serialisatie niet tweemaal wordt uitgevoerd. |
| Hoofdserialisatie | Vervolgens wordt het hoofdobject geserialiseerd en worden de instructies toegevoegd aan de instructieverzameling. |
| Integratie van instructies | Nadat alle objecten zijn geserialiseerd, worden de instructies door de Serialize methode geserialiseerd en toegevoegd aan een methode die wordt geretourneerd door GetInitializeMethod. Ten slotte wordt een constructor gemaakt die alle methoden aanroept die worden geretourneerd door GetInitializeMethod. |
-
In de volgende tabel ziet u de objecten die de Serialize methode op de contextstack plaatst.
| Instance | Beschrijving |
|---|---|
| TypeCodeDomSerializer | Deze serialisatiefunctie. Het kan handig zijn om openbare eigenschappen toe te voegen aan deze klasse door klassen af te leiden. |
| CodeTypeDeclaration | Het type dat wordt gemaakt. De meeste objecten hebben hiervoor geen directe toegang nodig. |