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