Поделиться через


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 Поведение
CodeThisReferenceExpression Это выражение представляет или thisMe. Чтобы найти объект, связанный с этим выражением DeserializeExpression , метод будет искать в контекстном стеке RootContext. Этот объект содержит корневой объект графа и выражение, представляющее его. Если объект присутствует и выражение совпадает, возвращается корневой объект. Если экземпляр не удается найти, возникает ошибка.
CodeFieldReferenceExpression Если целевой объект ссылки на поле имеет значение корневого объекта, GetInstance метод параметра manager будет использоваться для получения экземпляра объекта на основе имени. В противном случае стандартное отражение используется для целевого объекта для поиска запрошенного поля. Если не удается найти поле, возникает ошибка.
CodeVariableReferenceExpression Метод GetInstancemanager параметра используется для поиска экземпляра, представляющего заданное имя переменной. Если экземпляр не удается найти, возникает ошибка.

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

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

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