Share via


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

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

适用于

另请参阅