CodeDomSerializerBase.DeserializeExpression Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Deserializes the given expression into an in-memory object.
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
Parameters
- manager
- IDesignerSerializationManager
The IDesignerSerializationManager to use for serialization.
- name
- String
The name of the object that results from the expression. Can be null
if there is no need to name the object.
- expression
- CodeExpression
The CodeExpression to interpret.
Returns
An object resulting from interpretation of expression
.
Remarks
This is a helper method that derived classes can call to deserialize an expression. It deserializes the statement by interpreting and executing the CodeDOM expression specified by the expression
parameter, and then returns the results. If an object needs to be created as a result of this expression, it will be given the name specified by the name
parameter. The name can be null
if there is no need to name the object. The following table describes how specific expressions are handled.
Expression | Behavior |
---|---|
CodeThisReferenceExpression | This expression represents this or Me . To locate the object that is associated with this expression, the DeserializeExpression method will look in the context stack for a RootContext. This object contains the root object of the graph and the expression that represents it. If the object is present and the expression matches, the root object will be returned. An error is reported if an instance cannot be located. |
CodeFieldReferenceExpression | If the target of the field reference evaluates to the root object, the GetInstance method of the manager parameter will be used to retrieve the object instance based on name. Otherwise, standard reflection is used against the target object to locate the requested field. An error is reported if the field cannot be located. |
CodeVariableReferenceExpression | The GetInstance method of the manager parameter is used to locate the instance representing the given variable name. An error is reported if an instance cannot be located. |
DeserializeExpression continues to interpret expressions until they are completely resolved to an object, or until it can no longer simplify the expression. In this case, DeserializeExpression will return a CodeExpression that contains the most simplified expression. The following expressions are not supported: