CodeDomSerializerBase.DeserializeExpression 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将给定表达式反序列化为内存中的对象。
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
参数
- manager
- IDesignerSerializationManager
用于序列化的 IDesignerSerializationManager。
- name
- String
从表达式生成的对象的名称。 如果不需要命名该对象,可以为 null
。
- expression
- CodeExpression
要解释的 CodeExpression。
返回
从 expression
的解释生成的对象。
注解
这是派生类可以调用的帮助程序方法,以反序列化表达式。 它通过解释和执行 参数指定的 expression
CodeDOM 表达式来反序列化语句,然后返回结果。 如果需要为此表达式创建对象,则将为其指定参数 name
指定的名称。 如果不需要命名对象,则名称可以为 null
。 下表介绍了如何处理特定表达式。
Expression | 行为 |
---|---|
CodeThisReferenceExpression | 此表达式表示 this 或 Me 。 若要查找与此表达式关联的 对象,方法 DeserializeExpression 将在上下文堆栈 RootContext中查找 。 此对象包含图形的根对象和表示它的表达式。 如果对象存在且表达式匹配,则将返回根对象。 如果无法找到实例,则报告错误。 |
CodeFieldReferenceExpression | 如果字段引用的目标计算结果为根对象, GetInstance 则将使用 manager 参数的 方法基于名称检索对象实例。 否则,将针对目标对象使用标准反射来查找请求的字段。 如果找不到字段,则报告错误。 |
CodeVariableReferenceExpression | GetInstance参数的 manager 方法用于查找表示给定变量名称的实例。 如果无法找到实例,则报告错误。 |
DeserializeExpression 继续解释表达式,直到表达式完全解析为对象,或直到它无法再简化表达式为止。 在这种情况下, DeserializeExpression 将返回一个 CodeExpression 包含最简化表达式的 。 不支持以下表达式: