CodeDomSerializerBase.DeserializeExpression 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將給定的表達式反序列化為記憶體中的物件。
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 | 行為 |
|---|---|
| CodeThisReferenceExpression | 此表達式代表 this 或 Me。 為了找到與此表達式相關的物件,方法 DeserializeExpression 會在上下文堆疊中尋找一個 RootContext。 此物件包含圖的根物件及其表示式。 如果物件存在且表達式相符,則會回傳根物件。 若無法找到實例,則會報告錯誤。 |
| CodeFieldReferenceExpression | 如果欄位參考的目標值為根物件, GetInstance 則會使用管理器參數的方法來根據名稱檢索物件實例。 否則,則會對目標物體進行標準反射來定位所請求的欄位。 若無法找到該欄位,則會報告錯誤。 |
| CodeVariableReferenceExpression |
GetInstance參數的方法manager用來定位代表該變數名稱的實例。 若無法找到實例,則會報告錯誤。 |
DeserializeExpression 持續解釋表達式,直到表達式完全解析為物件,或無法再簡化表達式為止。 此時 會 DeserializeExpression 回傳包含最簡化表達式的 a CodeExpression 。 以下表達式不支援: