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

參數

name
String

由該表達式所產生的物件名稱。 如果不需要為物件命名,則可能是 null

expression
CodeExpression

CodeExpression 解讀。

傳回

一個由詮 expression釋 所產生的對象。

備註

這是一個輔助方法,導出類別可以呼叫它來反序列化表達式。 它透過解讀並執行參數 expression 指定的 CodeDOM 表達式來反序列化該陳述,然後回傳結果。 若需要依此表達式建立物件,則會依照參數指定的 name 名稱命名。 如果不需要為物件命名,則可以選擇名稱 null 。 下表說明特定表達式的處理方式。

Expression 行為
CodeThisReferenceExpression 此表達式代表 thisMe。 為了找到與此表達式相關的物件,方法 DeserializeExpression 會在上下文堆疊中尋找一個 RootContext。 此物件包含圖的根物件及其表示式。 如果物件存在且表達式相符,則會回傳根物件。 若無法找到實例,則會報告錯誤。
CodeFieldReferenceExpression 如果欄位參考的目標值為根物件, GetInstance 則會使用管理器參數的方法來根據名稱檢索物件實例。 否則,則會對目標物體進行標準反射來定位所請求的欄位。 若無法找到該欄位,則會報告錯誤。
CodeVariableReferenceExpression GetInstance參數的方法manager用來定位代表該變數名稱的實例。 若無法找到實例,則會報告錯誤。

DeserializeExpression 持續解釋表達式,直到表達式完全解析為物件,或無法再簡化表達式為止。 此時 會 DeserializeExpression 回傳包含最簡化表達式的 a CodeExpression 。 以下表達式不支援:

適用於

另請參閱