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