CodeDomSerializerBase.SerializeToExpression 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將指定的物件序列化為運算式。
protected:
System::CodeDom::CodeExpression ^ SerializeToExpression(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::Object ^ value);
protected System.CodeDom.CodeExpression SerializeToExpression (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object value);
protected System.CodeDom.CodeExpression? SerializeToExpression (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object? value);
member this.SerializeToExpression : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj -> System.CodeDom.CodeExpression
Protected Function SerializeToExpression (manager As IDesignerSerializationManager, value As Object) As CodeExpression
參數
- manager
- IDesignerSerializationManager
供序列化使用的 IDesignerSerializationManager。
- value
- Object
要序列化的物件。 可以是 null
。
傳回
如果可以序列化 value
則為 CodeExpression 物件,否則為 null
。
例外狀況
manager
為 null
。
備註
參數 value
可以是 null
,在此情況下會傳回基本表達式。
方法 SerializeToExpression 會使用下列規則來串行化類型:
它會先呼叫 GetExpression 方法,以查看是否已為 物件建立表達式。 如果是,則會傳回現有的表達式。
然後,它會找出物件的串行化程式,並要求它串行化。
如果物件的串行化程式 CodeExpression傳回值為 ,則會傳回表達式。
它會進行最後一次呼叫 GetExpression ,以查看串行化程式是否已新增表達式。
最後,它會傳
null
回 。
如果無法建立表達式,而且找不到適當的串行化程式,則會透過串行化管理員報告錯誤。 如果找到串行化程式但無法產生表達式,則不會回報任何錯誤。 在此情況下,假設串行化程式已回報錯誤,或未嘗試串行化物件。
如果串行化程式傳回語句或語句集合,則不會捨棄這些語句。 方法 SerializeToExpression 會先在內容堆疊上尋找 , StatementContext 並將語句新增至語句內容對象的 StatementCollection 屬性。 如果沒有語句內容, SerializeToExpression 方法將會在內容 CodeStatementCollection 中尋找 ,並在該處新增 語句。 如果找不到任何位置可新增 語句,將會產生錯誤。
注意
在串行化您自己的物件時,您不應該在 內Serialize呼叫 SerializeToExpression 方法。 相反地,您應該呼叫 GetExpression。 如果傳回 null
,請建立您自己的表示式並呼叫 SetExpression。 然後繼續進行其餘的串行化。