ExpressionEditor.EvaluateExpression Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Оценивает строку выражения и предоставляет значение времени выполнения для свойства элемента управления.
public:
abstract System::Object ^ EvaluateExpression(System::String ^ expression, System::Object ^ parseTimeData, Type ^ propertyType, IServiceProvider ^ serviceProvider);
public abstract object EvaluateExpression (string expression, object parseTimeData, Type propertyType, IServiceProvider serviceProvider);
abstract member EvaluateExpression : string * obj * Type * IServiceProvider -> obj
Public MustOverride Function EvaluateExpression (expression As String, parseTimeData As Object, propertyType As Type, serviceProvider As IServiceProvider) As Object
Параметры
- expression
- String
Оцениваемая строка выражения. Это выражение не содержит префикса выражения.
- parseTimeData
- Object
Объект, содержащий дополнительные сведения анализа для оценки параметра expression
. Они обычно предоставляются построителем выражений.
- propertyType
- Type
Тип свойства элемента управления, к которому привязан параметр expression
.
- serviceProvider
- IServiceProvider
Реализация поставщика службы, предоставленная узелом конструктора, используемым для получения дополнительных служб времени разработки.
Возвращаемое значение
Объект, на который ссылается оцененная строка выражения, если оценка выражения прошла успешно; в противном случае — значение null
.
Комментарии
Узел визуального конструктора EvaluateExpression использует метод для вычисления выражения и предоставления значения времени разработки для связанного свойства элемента управления.
Визуальный ExpressionBuilder.ParseExpression конструктор использует метод для анализа строки выражения во время разработки EvaluateExpression , а затем вызывает метод с проанализированными данными выражения. Визуальный конструктор использует результат вычисленного выражения для назначения значений свойств элемента управления, отображаемых в области конструктора.
Примечания для тех, кто реализует этот метод
Классы, производные от класса , ExpressionEditor должны переопределять EvaluateExpression(String, Object, Type, IServiceProvider) метод для вычисления типа пользовательского выражения во время разработки.
Как минимум, реализация EvaluateExpression(String, Object, Type, IServiceProvider) должна выполнять следующие действия.
Оцените строку выражения и определите объект, на который ссылается выражение.
Возвращает
null
значение , если не удается вычислить строку выражения.IsAssignableFrom(Type) Используйте метод on,
propertyType
чтобы определить, можно ли назначить объект, на который указывает ссылка, непосредственно типу свойства элемента управления, а затем, в зависимости от результата, выполнить одно из следующих действий:Если объект, на который указывает ссылка, можно назначить непосредственно свойству элемента управления, возвращает объект, на который указывает ссылка, для выражения.
Если объект, на который указывает ссылка, является простым типом, например строкой, возвращается объект, на который указывает ссылка.
В противном случае определите, можно ли назначить объект, на который указывает ссылка, или преобразовать его в тип свойства.
CanConvertFrom Используйте метод объекта TypeConverter для ,
propertyType
чтобы определить, можно ли преобразовать объект, на который указывает ссылка, в тип свойства элемента управления, а затем, в зависимости от результата, выполнить одно из следующих действий:Если объект можно преобразовать в тип свойства элемента управления, верните преобразованный объект с помощью ConvertFrom метода .
Если упоминаемый объект не может быть назначен или преобразован в
propertyType
, возвращается объект, на который указывает ссылка.
При необходимости реализация может использовать parseTimeData
объект, предоставляемый ParseExpression(String, Type, ExpressionBuilderContext) реализацией, EvaluateExpression(String, Object, Type, IServiceProvider) для оптимизации или помощи в вычислении строки входного выражения.