Udostępnij za pośrednictwem


CodeDomSerializerBase.SerializeToExpression Metoda

Definicja

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ć nullwartość , w którym przypadku zostanie zwrócone wyrażenie pierwotne.

Metoda SerializeToExpression używa następujących reguł serializacji typów:

  1. Najpierw wywołuje metodę GetExpression , aby sprawdzić, czy wyrażenie zostało już utworzone dla obiektu. Jeśli tak, zwraca istniejące wyrażenie.

  2. Następnie lokalizuje serializator obiektu i prosi go o serializację.

  3. Jeśli zwracana wartość serializatora obiektu to CodeExpression, wyrażenie jest zwracane.

  4. Wykonuje jedno ostatnie wywołanie, aby GetExpression sprawdzić, czy serializator dodał wyrażenie.

  5. 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 nullwartość , utwórz własne wyrażenie i wywołaj metodę SetExpression. Następnie przejdź do pozostałej części serializacji.

Dotyczy

Zobacz też