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

Der IDesignerSerializationManager für die Serialisierung zu verwendende Code.

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 für die Serialisierung von Typen:

  1. Zuerst wird die GetExpression Methode aufgerufen, um festzustellen, ob bereits ein Ausdruck für das Objekt erstellt wurde. Wenn ja, wird der vorhandene Ausdruck zurückgegeben.

  2. Anschließend wird der Serialisierer des Objekts gesucht, und es wird aufgefordert, die Serialisierung zu serialisieren.

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

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

  5. Schließlich wird es zurückgegeben null.

Wenn kein Ausdruck erstellt werden konnte und kein geeigneter 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 wurde. In diesem Fall wird davon ausgegangen, dass der Serialisierer entweder bereits den Fehler gemeldet hat oder nicht versucht hat, das Objekt zu serialisieren.

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

Hinweis

Sie sollten die SerializeToExpression Methode nicht aufrufen Serialize , wenn Sie Ihr eigenes Objekt serialisieren. Stattdessen sollten Sie anrufen GetExpression. Wenn sie zurückgegeben wird null, erstellen Sie Ihren eigenen Ausdruck und rufen Sie auf SetExpression. Fahren Sie dann mit der restlichen Serialisierung fort.

Gilt für:

Weitere Informationen