TypeCodeDomSerializer.Serialize Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Serializuje katalog główny obiektu, tworząc nową deklarację typu, która definiuje katalog główny.
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
Parametry
- manager
- IDesignerSerializationManager
Menedżer serializacji do użycia do serializacji.
- root
- Object
Obiekt do serializacji.
- members
- ICollection
Opcjonalna kolekcja elementów członkowskich. Może być null
lub być pusty.
Zwraca
Obiekt CodeTypeDeclaration definiujący obiekt główny.
Wyjątki
manager
lub root
ma wartość null
.
Uwagi
Metoda Serialize serializuje dany obiekt główny i opcjonalną kolekcję elementów członkowskich w celu utworzenia nowej definicji typu. members
Jeśli kolekcja zawiera wartości, te wartości są serializowane. Same wartości mogą być serializować jako zmienne składowe lub zmienne lokalne. To określenie jest wykonywane przez wyszukanie właściwości extendera na obiekcie o nazwie GenerateMember
. Jeśli true
element członkowski zostanie wygenerowany. W przeciwnym razie jest generowana zmienna lokalna. Dla wygody members
kolekcja może zawierać obiekt główny. W takim przypadku obiekt główny nie jest również dodawany jako element członkowski lub zmienna lokalna.
Nazwa zwracanego typu jest pobierana z nazwy obiektu głównego, jeśli był to nazwany obiekt. W przeciwnym razie nazwa jest syfekowana na podstawie prostej nazwy typu klasy głównej.
W poniższej tabeli przedstawiono zadania wykonywane przez domyślną implementację Serialize metody .
Zadanie | Opis |
---|---|
Rozmieszczanie kontekstu | Kontekst serializacji jest inicjowany przy użyciu danych, w tym i RootContextCodeTypeDeclaration |
Serializacja składowych | Serialize Następnie przeprowadzi wszystkich członków i wywoła metodę SerializeToExpression. Ponieważ serializacja jest wykonywana odpowiednio w systemie SerializeToExpression, zapewnia to, że serializacja nie jest wykonywana dwukrotnie. |
Serializacja katalogu głównego | Następnie obiekt główny jest serializowany, a jego instrukcje są dodawane do kolekcji instrukcji. |
Integracja instrukcji | Po serializacji Serialize wszystkich obiektów metoda porządkuje instrukcje i dodaje je do metody zwróconej z GetInitializeMethodklasy . Na koniec konstruktor jest sfabrykowany, który wywołuje wszystkie metody zwracane z GetInitializeMethodklasy . |
-
W poniższej tabeli przedstawiono obiekty, które Serialize metoda umieszcza na stosie kontekstu.
Wystąpienie | Opis |
---|---|
TypeCodeDomSerializer | Ten serializator. Klasy pochodne mogą okazać się przydatne do dodawania właściwości publicznych do tej klasy. |
CodeTypeDeclaration | Tworzony typ. Większość obiektów nie wymaga bezpośredniego dostępu do tego. |