Freigeben über


CodeDomSerializerBase.SerializeToExpression Methode

Definition

Serialisiert das angegebene Objekt in einen Ausdruck.

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

Parameter

manager
IDesignerSerializationManager

Die für die Serialisierung zu verwendende IDesignerSerializationManager.

value
Object

Das zu serialisierende Objekt. Kann null sein.

Gibt zurück

Ein CodeExpression-Objekt, wenn value serialisiert werden kann; andernfalls null.

Ausnahmen

manager ist null

Hinweise

Der value Parameter kann sein null. In diesem Fall wird ein primitiver Ausdruck zurückgegeben.

Die SerializeToExpression -Methode verwendet die folgenden Regeln zum Serialisieren von Typen:

  1. Sie ruft zuerst die GetExpression -Methode auf, um festzustellen, ob bereits ein Ausdruck für das -Objekt erstellt wurde. Wenn ja, wird der vorhandene Ausdruck zurückgegeben.

  2. Anschließend wird das Serialisierer des Objekts gesucht und zum Serialisieren aufgefordert.

  3. Wenn der Rückgabewert des Serialisierungsprogramms des Objekts ein CodeExpressionist, wird der Ausdruck zurückgegeben.

  4. Sie führt einen letzten Aufruf aus, um festzustellen GetExpression , ob der Serialisierer einen Ausdruck hinzugefügt hat.

  5. Schließlich wird zurückgegeben null.

Wenn kein Ausdruck erstellt und kein geeignetes Serialisierer gefunden werden konnte, wird ein Fehler über den Serialisierungs-Manager gemeldet. Es wird kein Fehler gemeldet, wenn ein Serialisierer gefunden wurde, aber kein Ausdruck erzeugt werden konnte. In diesem Fall wird davon ausgegangen, dass der Serialisierer den Fehler entweder bereits gemeldet hat oder nicht versucht hat, das Objekt zu serialisieren.

Wenn der Serialisierer eine -Anweisung oder eine Auflistung von Anweisungen zurückgegeben hat, werden diese Anweisungen nicht verworfen. Die SerializeToExpression -Methode sucht zuerst nach einem StatementContext im Kontextstapel und fügt der -Eigenschaft des Anweisungskontextobjekts StatementCollection Anweisungen hinzu. Wenn kein Anweisungskontext vorhanden ist, sucht die SerializeToExpression Methode im Kontext nach einem CodeStatementCollection und fügt die Anweisungen dort hinzu. Wenn kein Ort zum Hinzufügen der Anweisungen gefunden werden kann, wird ein Fehler generiert.

Hinweis

Sie sollten die SerializeToExpression -Methode nicht in Serialize aufrufen, wenn Sie Ihr eigenes Objekt serialisieren. Rufen Sie stattdessen auf GetExpression. Wenn er zurückgibt null, erstellen Sie Ihren eigenen Ausdruck, und rufen Sie auf SetExpression. Fahren Sie dann mit dem Rest Ihrer Serialisierung fort.

Gilt für:

Weitere Informationen