TypeCodeDomSerializer.Serialize 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
通过创建定义根的新类型声明来序列化对象根。
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 定义根对象。
例外
manager 或 root 为 null.
注解
该方法 Serialize 序列化给定的根对象和成员的可选集合以创建新的类型定义。
members如果集合包含值,则会序列化这些值。 值本身可以序列化为成员变量或局部变量。 通过搜索调用 GenerateMember的对象上的扩展器属性来完成此决定。 如果 true生成成员。 否则,将生成局部变量。 为方便起见, members 集合可以包含根对象。 在这种情况下,根对象也不会添加为成员或局部变量。
如果返回的类型是命名对象,则从根对象的名称中获取。 否则,将从根类的简单类型名称中捏造名称。
下表显示了方法的默认实现 Serialize 所执行的任务。
| 任务 | Description |
|---|---|
| 上下文种子设定 | 序列化上下文使用包括 RootContext 和 CodeTypeDeclaration |
| 成员序列化 | 接下来, Serialize 引导所有成员和呼叫 SerializeToExpression。 由于序列化是在机会上 SerializeToExpression完成的,因此可确保序列化不会执行两次。 |
| 根序列化 | 接下来,将序列化根对象,并将其语句添加到语句集合中。 |
| 语句集成 | 序列化所有对象后,该方法 Serialize 对语句进行排序,并将其添加到从 GetInitializeMethod中返回的方法。 最后,构造函数是捏造的,用于调用从 GetInitializeMethod中返回的所有方法。 |
-
下表显示了方法放置在上下文堆栈上的对象 Serialize 。
| Instance | Description |
|---|---|
| TypeCodeDomSerializer | 此序列化程序。 派生类可能会发现向此类添加公共属性很有用。 |
| CodeTypeDeclaration | 正在创建的类型。 大多数对象不需要直接访问此对象。 |