Share via


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

任务 说明
上下文种子设定 序列化上下文使用包括 和 的数据 RootContext 初始化 CodeTypeDeclaration
成员序列化 接下来, Serialize 遍遍所有成员并调用 SerializeToExpression。 由于序列化是在 中 SerializeToExpression以机会方式完成的,这可确保序列化不会执行两次。
根序列化 接下来,对根对象进行序列化,并将其语句添加到语句集合中。
语句集成 序列化所有对象后, Serialize 方法对 语句进行排序,并将其添加到从 GetInitializeMethod返回的方法中。 最后,构造一个构造函数,该构造函数调用从 GetInitializeMethod返回的所有方法。

-

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

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

适用于

另请参阅