CodeDomSerializerBase.SerializeToExpression 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 dany obiekt w wyrażeniu.
protected:
System::CodeDom::CodeExpression ^ SerializeToExpression(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::Object ^ value);
protected System.CodeDom.CodeExpression SerializeToExpression (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object value);
protected System.CodeDom.CodeExpression? SerializeToExpression (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object? value);
member this.SerializeToExpression : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj -> System.CodeDom.CodeExpression
Protected Function SerializeToExpression (manager As IDesignerSerializationManager, value As Object) As CodeExpression
Parametry
- manager
- IDesignerSerializationManager
Element IDesignerSerializationManager do użycia do serializacji.
- value
- Object
Obiekt do serializacji. Może to być null
.
Zwraca
Obiekt CodeExpression , jeśli value
można serializować; w przeciwnym razie null
.
Wyjątki
manager
to null
.
Uwagi
Parametr value
może mieć null
wartość , w którym przypadku zostanie zwrócone wyrażenie pierwotne.
Metoda SerializeToExpression używa następujących reguł serializacji typów:
Najpierw wywołuje metodę GetExpression , aby sprawdzić, czy wyrażenie zostało już utworzone dla obiektu. Jeśli tak, zwraca istniejące wyrażenie.
Następnie lokalizuje serializator obiektu i prosi go o serializację.
Jeśli zwracana wartość serializatora obiektu to CodeExpression, wyrażenie jest zwracane.
Wykonuje jedno ostatnie wywołanie, aby GetExpression sprawdzić, czy serializator dodał wyrażenie.
Na koniec zwraca wartość
null
.
Jeśli nie można utworzyć wyrażenia i nie można odnaleźć odpowiedniego serializatora, zostanie zgłoszony błąd za pośrednictwem menedżera serializacji. W przypadku znalezienia serializatora nie zostanie zgłoszony żaden błąd, ale nie udało się wygenerować wyrażenia. W tym przypadku zakłada się, że serializator zgłosił już błąd lub nie próbował serializować obiektu.
Jeśli serializator zwrócił instrukcję lub kolekcję instrukcji, te instrukcje nie zostaną odrzucone. Metoda SerializeToExpression najpierw wyszuka obiekt StatementContext na stosie kontekstu i doda instrukcje do właściwości obiektu kontekstu instrukcji StatementCollection . Jeśli nie ma kontekstu instrukcji, SerializeToExpression metoda będzie szukać w kontekście elementu CodeStatementCollection i dodać tam instrukcje. Jeśli nie można odnaleźć miejsca w celu dodania instrukcji, zostanie wygenerowany błąd.
Uwaga
Nie należy wywoływać SerializeToExpression metody w programie Serialize podczas serializacji własnego obiektu. Zamiast tego należy wywołać metodę GetExpression. Jeśli zwraca null
wartość , utwórz własne wyrażenie i wywołaj metodę SetExpression. Następnie przejdź do pozostałej części serializacji.