TypeCodeDomSerializer.Serialize 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
藉由建立定義根 (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);
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,定義根物件。
例外狀況
manager
或 root
為 null
。
備註
方法會將 Serialize 指定的根對象和成員的選擇性集合串行化,以建立新的類型定義。 members
如果集合包含值,則會串行化這些值。 值本身可能會串行化為成員變數或局部變數。 藉由在名為 GenerateMember
的物件上搜尋擴充項屬性,即可完成此判斷。 如果 true
為 ,則會產生成員。 否則,會產生局部變數。 為了方便起見, members
集合可以包含根物件。 在此情況下,根物件也不會新增為成員或局部變數。
如果傳回的類型是具名物件,則會取自根對象的名稱。 如果沒有,則會從根類別的簡單類型名稱產生名稱。
下表顯示方法預設實作 Serialize 所執行的工作。
工作 | 描述 |
---|---|
內容植入 | 串行化內容會以包含 RootContext 和的數據初始化 CodeTypeDeclaration |
成員串行化 | 接下來, Serialize 逐步解說所有成員並呼叫 SerializeToExpression。 由於串行化是在 中以機 SerializeToExpression率方式完成,這可確保串行化不會執行兩次。 |
根串行化 | 接下來,根物件會串行化,且其語句會新增至語句集合。 |
語句整合 | 串行化所有對象之後,方法會 Serialize 排序 語句,並將其新增至從 GetInitializeMethod傳回的方法。 最後,建構函式會呼叫從 GetInitializeMethod傳回的所有方法。 |
-
下表顯示方法放置於內容堆疊上的物件 Serialize 。
執行個體 | 描述 |
---|---|
TypeCodeDomSerializer | 這個串行化程式。 衍生類別可能會發現將公用屬性新增至這個類別很有用。 |
CodeTypeDeclaration | 正在建立的類型。 大部分的物件不需要直接存取此專案。 |