TypeCodeDomSerializer.Serialize Metódus

Definíció

Szerializálja az objektumgyökereket egy új típusdeklaráció létrehozásával, amely meghatározza a gyökért.

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

Paraméterek

manager
IDesignerSerializationManager

A szerializáláshoz használni kívánt szerializálás-kezelő.

root
Object

A szerializálandó objektum.

members
ICollection

Választható tagok gyűjteménye. Lehet vagy null üres.

Válaszok

A CodeTypeDeclaration gyökérobjektumot meghatározó elem.

Kivételek

manager vagy root az null.

Megjegyzések

A Serialize metódus szerializálja az adott gyökérobjektumot és a tagok opcionális gyűjteményét egy új típusdefiníció létrehozásához. Ha a members gyűjtemény értékeket tartalmaz, ezek az értékek szerializálva lesznek. Maguk az értékek szerializálhatók tagváltozóként vagy helyi változóként. Ez a meghatározás úgy történik, hogy egy extender tulajdonságot keres a nevű GenerateMemberobjektumon. Ha true, a rendszer létrehoz egy tagot. Ellenkező esetben a rendszer létrehoz egy helyi változót. A kényelem érdekében a members gyűjtemény tartalmazhatja a gyökérobjektumot. Ebben az esetben a gyökérobjektum nem lesz tagként vagy helyi változóként hozzáadva.

A visszaadott típus neve a gyökérobjektum nevéből származik, ha elnevezett objektum volt. Ha nem, a név a gyökérosztály egyszerű típusnevéből jön létre.

Az alábbi táblázat a metódus alapértelmezett implementációja Serialize által végrehajtott feladatokat mutatja be.

tevékenység Leírás
Környezetbe való bevetés A szerializálási környezet inicializálása olyan adatokkal történik, mint a RootContextCodeTypeDeclaration
Tag szerializálása Serialize Ezután végigvezeti az összes tagot és hívástSerializeToExpression. Mivel a szerializálás opportunista módon SerializeToExpressiontörténik, ez biztosítja, hogy a szerializálás ne legyen kétszer végrehajtva.
Gyökér szerializálás Ezután a gyökérobjektum szerializálva lesz, és az utasítások hozzá lesznek adva az utasításgyűjteményhez.
Utasításintegráció Miután az összes objektum szerializálva van, a Serialize metódus megrendeli az utasításokat, és hozzáadja őket a visszaadott GetInitializeMethodmetódushoz. Végül létrehozunk egy konstruktort, amely meghívja az összes visszaadott metódust GetInitializeMethod.

-

Az alábbi táblázat azokat az objektumokat mutatja be, ahol a Serialize metódus elhelyezi a környezeti vermet.

Instance Leírás
TypeCodeDomSerializer Ez a szerializáló. A származtatott osztályok hasznosnak bizonyulhatnak, ha nyilvános tulajdonságokat adnak hozzá ehhez az osztályhoz.
CodeTypeDeclaration A létrehozandó típus. A legtöbb objektumhoz nincs szükség közvetlen hozzáférésre.

A következőre érvényes:

Lásd még