語言

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

參數

name
String

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

expression
CodeExpression

要 CodeExpression 解讀。

傳回

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

備註

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

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

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

適用於

另請參閱