CodeDomSerializerBase.DeserializeExpression 方法

定义

将给定表达式反序列化为内存中对象。

protected:
 System::Object ^ DeserializeExpression(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::String ^ name, System::CodeDom::CodeExpression ^ expression);
protected object DeserializeExpression(System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, string name, System.CodeDom.CodeExpression expression);
protected object? DeserializeExpression(System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, string? name, System.CodeDom.CodeExpression? expression);
member this.DeserializeExpression : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * string * System.CodeDom.CodeExpression -> obj
Protected Function DeserializeExpression (manager As IDesignerSerializationManager, name As String, expression As CodeExpression) As Object

参数

name
String

来自表达式的对象的名称。 null如果不需要为对象命名,则可以。

expression
CodeExpression

CodeExpression 解释的。

返回

由解释 expression结果生成的对象。

注解

这是派生类可以调用以反序列化表达式的帮助程序方法。 它通过解释和执行参数指定的 expression CodeDOM 表达式来反序列化语句,然后返回结果。 如果需要创建作为此表达式的结果的对象,则会为该对象指定参数的名称 name 。 如果不需要为对象命名,则可以 null 使用该名称。 下表介绍了如何处理特定表达式。

Expression Behavior
CodeThisReferenceExpression 此表达式表示 thisMe。 若要查找与此表达式关联的对象,该方法 DeserializeExpression 将在上下文堆栈中查找一个 RootContext对象。 此对象包含图形的根对象和表示它的表达式。 如果对象存在并且表达式匹配,将返回根对象。 如果无法找到实例,则会报告错误。
CodeFieldReferenceExpression 如果字段引用的目标计算结果为根对象, GetInstance 则管理器参数的方法将用于基于名称检索对象实例。 否则,将针对目标对象使用标准反射来查找请求的字段。 如果字段无法找到,则报告错误。
CodeVariableReferenceExpression 参数 GetInstance 的方法 manager 用于查找表示给定变量名称的实例。 如果无法找到实例,则会报告错误。

DeserializeExpression 继续解释表达式,直到它们完全解析为对象,或者直到它不能再简化表达式为止。 在这种情况下, DeserializeExpression 将返回一个 CodeExpression 包含最简化的表达式。 不支持以下表达式:

适用于

另请参阅