TypeCodeDomSerializer.Serialize 方法

定义

通过创建定义根的新类型声明来序列化对象根。

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 所执行的任务。

任务 Description
上下文种子设定 序列化上下文使用包括 RootContextCodeTypeDeclaration
成员序列化 接下来, Serialize 引导所有成员和呼叫 SerializeToExpression。 由于序列化是在机会上 SerializeToExpression完成的,因此可确保序列化不会执行两次。
根序列化 接下来,将序列化根对象,并将其语句添加到语句集合中。
语句集成 序列化所有对象后,该方法 Serialize 对语句进行排序,并将其添加到从 GetInitializeMethod中返回的方法。 最后,构造函数是捏造的,用于调用从 GetInitializeMethod中返回的所有方法。

-

下表显示了方法放置在上下文堆栈上的对象 Serialize

Instance Description
TypeCodeDomSerializer 此序列化程序。 派生类可能会发现向此类添加公共属性很有用。
CodeTypeDeclaration 正在创建的类型。 大多数对象不需要直接访问此对象。

适用于

另请参阅