次の方法で共有


CodeDomSerializerBase.DeserializeExpression メソッド

定義

指定した式をメモリ内オブジェクトに逆シリアル化します。

protected:
 System::Object ^ DeserializeExpression(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::String ^ name, System::CodeDom::CodeExpression ^ expression);
protected object DeserializeExpression (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, string name, System.CodeDom.CodeExpression expression);
protected object? DeserializeExpression (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, string? name, System.CodeDom.CodeExpression? expression);
member this.DeserializeExpression : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * string * System.CodeDom.CodeExpression -> obj
Protected Function DeserializeExpression (manager As IDesignerSerializationManager, name As String, expression As CodeExpression) As Object

パラメーター

manager
IDesignerSerializationManager

シリアル化に使用する IDesignerSerializationManager

name
String

式の結果として作成されるオブジェクトの名前。 オブジェクトに名前を付ける必要がない場合は、null でもかまいません。

expression
CodeExpression

解釈する CodeExpression

戻り値

expression の解釈の結果として作成されたオブジェクト。

注釈

これは、派生クラスが式を逆シリアル化するために呼び出すことができるヘルパー メソッドです。 パラメーターで指定された CodeDOM 式を解釈して実行することでステートメントを expression 逆シリアル化し、結果を返します。 この式の結果としてオブジェクトを作成する必要がある場合は、 パラメーターで指定された名前が name 指定されます。 オブジェクトに名前を付ける必要がない場合は、 という名前を指定できます null 。 次の表では、特定の式の処理方法について説明します。

Expression 動作
CodeThisReferenceExpression この式は または Meを表しますthis。 この式に関連付けられているオブジェクトを見つけるために、 DeserializeExpression メソッドは コンテキスト スタックで を RootContext検索します。 このオブジェクトには、グラフのルート オブジェクトと、それを表す式が含まれます。 オブジェクトが存在し、式が一致する場合は、ルート オブジェクトが返されます。 インスタンスが見つからない場合は、エラーが報告されます。
CodeFieldReferenceExpression フィールド参照のターゲットがルート オブジェクトに評価された場合、 GetInstance manager パラメーターのメソッドを使用して、名前に基づいてオブジェクト インスタンスを取得します。 それ以外の場合は、要求されたフィールドを見つけるためにターゲット オブジェクトに対して標準リフレクションが使用されます。 フィールドが見つからない場合は、エラーが報告されます。
CodeVariableReferenceExpression GetInstanceパラメーターの メソッドはmanager、指定された変数名を表すインスタンスを見つけるために使用されます。 インスタンスが見つからない場合は、エラーが報告されます。

DeserializeExpression は、オブジェクトに完全に解決されるまで、または式を簡略化できなくなるまで、式を解釈し続けます。 この場合、 DeserializeExpression は最も簡略化された式を含む を CodeExpression 返します。 次の式はサポートされていません。

適用対象

こちらもご覧ください