TypeCodeDomSerializer.Serialize 方法

定義

透過建立定義 root 的新型別宣告來序列化物件根節點。

public:
 virtual System::CodeDom::CodeTypeDeclaration ^ Serialize(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::Object ^ root, System::Collections::ICollection ^ members);
public virtual System.CodeDom.CodeTypeDeclaration Serialize(System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object root, System.Collections.ICollection members);
abstract member Serialize : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj * System.Collections.ICollection -> System.CodeDom.CodeTypeDeclaration
override this.Serialize : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj * System.Collections.ICollection -> System.CodeDom.CodeTypeDeclaration
Public Overridable Function Serialize (manager As IDesignerSerializationManager, root As Object, members As ICollection) As CodeTypeDeclaration

參數

manager
IDesignerSerializationManager

用於序列化的序列化管理器。

root
Object

要串連的物件。

members
ICollection

成員可選擇集合。 可以是 null 或空的。

傳回

一個 CodeTypeDeclaration 定義根物件的

例外狀況

managerrootnull

備註

該方法序列 Serialize 化給定的根物件及可選的成員集合,以建立新的型別定義。 如果集合包含 members 值,這些值會被序列化。 值本身可以序列化為成員變數或區域變數。 此判定是透過尋找物件 GenerateMember上的延伸性質來完成。 若 true,則產生一個成員。 否則,會產生一個局部變數。 為了方便起見, members 集合可以包含根物件。 此時,根物件不會同時作為成員或本地變數加入。

如果是命名物件,則回傳的類型名稱取自根物件的名稱。 若不行,則由根類別的簡單型別名稱合成名稱。

下表顯示了該方法預設實作 Serialize 所執行的任務。

任務 說明
情境播種 序列化上下文初始化時包含 和RootContextCodeTypeDeclaration
成員連載 接著, Serialize 所有成員都走出來並打電話 SerializeToExpression。 由於序列化是在 中 SerializeToExpression機會性地完成,這確保序列化不會重複。
根序列化 接著,將根物件序列化,並將其語句加入語句集合。
語句積分 所有物件序列化後, Serialize 方法會排序這些語句,並將其加入從 返回的方法 GetInitializeMethod中。 最後,會製造一個構造子,呼叫所有從 返回的方法 GetInitializeMethod

-

下表顯示該 Serialize 方法在上下文堆疊中放置的物件。

Instance 說明
TypeCodeDomSerializer 這個序列器。 衍生類別可能會發現在此類別中加入公共屬性很有用。
CodeTypeDeclaration 正在創造的類型。 大多數物件不需要直接存取這些資料。

適用於

另請參閱