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);
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 | 正在创建的类型。 大多数对象不需要直接访问此对象。 |