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

Параметры

manager
IDesignerSerializationManager

Используется IDesignerSerializationManager для сериализации.

name
String

Имя объекта, который приводит к выражению. Может быть null , если нет необходимости называть объект.

expression
CodeExpression

Интерпретация CodeExpression .

Возвращаемое значение

Объект, полученный из интерпретации expression.

Комментарии

Это вспомогательный метод, который производные классы могут вызывать десериализацию выражения. Он десериализирует инструкцию, интерпретируя и выполняя выражение CodeDOM, указанное expression параметром, а затем возвращает результаты. Если объект должен быть создан в результате этого выражения, он будет присвоен имя, указанное параметром name . Имя может быть null , если нет необходимости называть объект. В следующей таблице описывается обработка конкретных выражений.

Expression Behavior
CodeThisReferenceExpression Это выражение представляет this или Me. Чтобы найти объект, связанный с этим выражением, DeserializeExpression метод будет выглядеть в стеке контекста RootContextдля объекта. Этот объект содержит корневой объект графа и выражение, представляющее его. Если объект присутствует и выражение совпадает, корневой объект будет возвращен. Сообщается об ошибке, если экземпляр не может находиться.
CodeFieldReferenceExpression Если целевой объект ссылки на поле вычисляется корневому объекту, GetInstance метод параметра диспетчера будет использоваться для получения экземпляра объекта на основе имени. В противном случае стандартное отражение используется для целевого объекта для поиска запрошенного поля. Сообщается об ошибке, если поле не удается найти.
CodeVariableReferenceExpression Метод GetInstancemanager параметра используется для поиска экземпляра, представляющего заданное имя переменной. Сообщается об ошибке, если экземпляр не может находиться.

DeserializeExpression продолжает интерпретировать выражения до тех пор, пока они не будут полностью разрешены объекту или пока он больше не сможет упростить выражение. В этом случае DeserializeExpression возвращается значение CodeExpression , содержащее наиболее упрощенное выражение. Следующие выражения не поддерживаются:

Применяется к

См. также раздел