CodeDomSerializerBase.SerializeToExpression Metodo

Definizione

Serializza l'oggetto dato in un'espressione.

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

Parametri

manager
IDesignerSerializationManager

Classe IDesignerSerializationManager da utilizzare per la serializzazione.

value
Object

Oggetto da serializzare. Può essere null.

Restituisce

Oggetto CodeExpression se value può essere serializzato; in caso contrario, null.

Eccezioni

manager è null.

Commenti

Il value parametro può essere null, nel qual caso verrà restituita un'espressione primitiva.

Il SerializeToExpression metodo usa le regole seguenti per la serializzazione dei tipi:

  1. Chiama innanzitutto il GetExpression metodo per verificare se un'espressione è già stata creata per l'oggetto . In tal caso, restituisce l'espressione esistente.

  2. Individua quindi il serializzatore dell'oggetto e lo chiede di serializzare.

  3. Se il valore restituito del serializzatore dell'oggetto è , CodeExpressionviene restituita l'espressione .

  4. Esegue un'ultima chiamata a GetExpression per verificare se il serializzatore ha aggiunto un'espressione.

  5. Infine, restituisce null.

Se non è stato possibile creare alcuna espressione e non è stato trovato alcun serializzatore appropriato, verrà segnalato un errore tramite gestione serializzazione. Non verrà segnalato alcun errore se è stato trovato un serializzatore ma non è stato possibile produrre un'espressione. In questo caso, si presuppone che il serializzatore abbia già segnalato l'errore o che non abbia tentato di serializzare l'oggetto.

Se il serializzatore ha restituito un'istruzione o una raccolta di istruzioni, tali istruzioni non verranno eliminate. Il SerializeToExpression metodo cercherà innanzitutto un oggetto StatementContext nello stack di contesto e aggiungerà istruzioni alla proprietà dell'oggetto contesto dell'istruzione StatementCollection . Se non è presente alcun contesto di istruzione, il SerializeToExpression metodo cercherà nel contesto un CodeStatementCollection oggetto e aggiungerà le istruzioni in questa posizione. Se non viene trovata alcuna posizione per aggiungere le istruzioni, verrà generato un errore.

Nota

Non è consigliabile chiamare il metodo all'interno Serialize durante la SerializeToExpression serializzazione del proprio oggetto. È invece necessario chiamare GetExpression. Se restituisce null, creare un'espressione personalizzata e chiamare SetExpression. Procedere quindi con il resto della serializzazione.

Si applica a

Vedi anche