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);
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の解釈に起因するオブジェクト。

注釈

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

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

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

適用対象

こちらもご覧ください