共用方式為


CodeDomSerializerBase.SerializeToExpression 方法

定義

將指定的物件序列化為運算式。

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

參數

value
Object

要序列化的物件。 可以是 null

傳回

如果可以序列化 value 則為 CodeExpression 物件,否則為 null

例外狀況

managernull

備註

參數 value 可以是 null,在此情況下會傳回基本表達式。

方法 SerializeToExpression 會使用下列規則來串行化類型:

  1. 它會先呼叫 GetExpression 方法,以查看是否已為 物件建立表達式。 如果是,則會傳回現有的表達式。

  2. 然後,它會找出物件的串行化程式,並要求它串行化。

  3. 如果物件的串行化程式 CodeExpression傳回值為 ,則會傳回表達式。

  4. 它會進行最後一次呼叫 GetExpression ,以查看串行化程式是否已新增表達式。

  5. 最後,它會傳 null回 。

如果無法建立表達式,而且找不到適當的串行化程式,則會透過串行化管理員報告錯誤。 如果找到串行化程式但無法產生表達式,則不會回報任何錯誤。 在此情況下,假設串行化程式已回報錯誤,或未嘗試串行化物件。

如果串行化程式傳回語句或語句集合,則不會捨棄這些語句。 方法 SerializeToExpression 會先在內容堆疊上尋找 , StatementContext 並將語句新增至語句內容對象的 StatementCollection 屬性。 如果沒有語句內容, SerializeToExpression 方法將會在內容 CodeStatementCollection 中尋找 ,並在該處新增 語句。 如果找不到任何位置可新增 語句,將會產生錯誤。

注意

在串行化您自己的物件時,您不應該在 內Serialize呼叫 SerializeToExpression 方法。 相反地,您應該呼叫 GetExpression。 如果傳回 null,請建立您自己的表示式並呼叫 SetExpression。 然後繼續進行其餘的串行化。

適用於

另請參閱