TypeCodeDomSerializer.Serialize Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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. |