CodeDomSerializerBase.SerializeToExpression 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将给定对象序列化为表达式。
protected:
System::CodeDom::CodeExpression ^ SerializeToExpression(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::Object ^ value);
protected System.CodeDom.CodeExpression SerializeToExpression (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object value);
protected System.CodeDom.CodeExpression? SerializeToExpression (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object? value);
member this.SerializeToExpression : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj -> System.CodeDom.CodeExpression
Protected Function SerializeToExpression (manager As IDesignerSerializationManager, value As Object) As CodeExpression
参数
- manager
- IDesignerSerializationManager
用于序列化的 IDesignerSerializationManager。
- value
- Object
要序列化的对象。 可以为 null
。
返回
如果 value
可以序列化,则为 CodeExpression 对象;否则为 null
。
例外
manager
为 null
。
注解
参数 value
可以是 null
,在这种情况下,将返回基元表达式。
方法 SerializeToExpression 使用以下规则对序列化类型:
它首先调用 GetExpression 方法,以查看是否已为 对象创建表达式。 如果是,则返回现有表达式。
然后,它会找到对象的序列化程序,并要求它序列化。
如果对象的序列化程序的返回值为 , CodeExpression则返回表达式。
它最后一次调用, GetExpression 以查看序列化程序是否添加了表达式。
最后,它返回
null
。
如果无法创建任何表达式,并且找不到合适的序列化程序,将通过序列化管理器报告错误。 如果已找到序列化程序,但无法生成表达式,则不会报告错误。 在这种情况下,假定序列化程序已报告错误,或者未尝试序列化对象。
如果序列化程序返回语句或语句集合,则不会丢弃这些语句。 方法 SerializeToExpression 将首先在上下文堆栈上查找 , StatementContext 并将 语句添加到语句上下文对象的 StatementCollection 属性。 如果没有语句上下文,方法 SerializeToExpression 将在上下文中查找 , CodeStatementCollection 并在其中添加 语句。 如果找不到添加 语句的位置,将生成错误。
注意
序列化自己的 对象时,不应在 中Serialize调用 SerializeToExpression 方法。 应改为调用 GetExpression。 如果返回 null
,请创建自己的表达式并调用 SetExpression。 然后继续执行序列化的其余部分。