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 , содержащее наиболее упрощенное выражение. Следующие выражения не поддерживаются: