共用方式為


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 。 下表描述如何處理特定表達式。

運算式 行為
CodeThisReferenceExpression 這個表示式代表 thisMe。 若要找出與此表示式相關聯的物件, DeserializeExpression 方法將會在 的內容堆疊 RootContext中尋找 。 這個物件包含圖形的根物件,以及代表它的表達式。 如果物件存在且表達式相符,則會傳回根物件。 如果找不到實例,就會回報錯誤。
CodeFieldReferenceExpression 如果欄位參考的目標評估為根物件, GetInstance 則管理員參數的 方法將用來根據名稱擷取對象實例。 否則,會針對目標物件使用標準反映來找出要求的欄位。 如果找不到欄位,就會回報錯誤。
CodeVariableReferenceExpression 參數 GetInstancemanager 方法可用來找出代表指定變數名稱的實例。 如果找不到實例,就會回報錯誤。

DeserializeExpression 會繼續解譯表達式,直到它們完全解析為物件,或直到無法再簡化表達式為止。 在此情況下, DeserializeExpression 會傳回 CodeExpression ,其中包含最簡化的表達式。 不支援下列表示式:

適用於

另請參閱