ExpressionEditor.EvaluateExpression Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Avalia uma cadeia de caracteres de expressão e fornece o valor de tempo de design para uma propriedade de controle.
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
Parâmetros
- expression
- String
Uma cadeia de caracteres da expressão a ser avaliada. A expressão não inclui o prefixo de expressão.
- parseTimeData
- Object
Um objeto que contém informações de análise adicionais para avaliar a expression
. Isso geralmente é fornecido pelo construtor de expressões.
- propertyType
- Type
O tipo da propriedade de controle à qual a expression
está associada.
- serviceProvider
- IServiceProvider
Uma implementação do provedor de serviço fornecida pelo host do designer, usada para obter serviços de tempo de design adicionais.
Retornos
O objeto referenciado pela cadeia de caracteres de expressão avaliada se a avaliação da expressão for bem-sucedida; caso contrário, null
.
Comentários
O host do designer visual usa o EvaluateExpression método para avaliar uma expressão e fornecer o valor de tempo de design para uma propriedade de controle associada.
O designer visual usa o ExpressionBuilder.ParseExpression método para analisar a cadeia de caracteres de expressão em tempo de design e, em seguida, chama o EvaluateExpression método com os dados de expressão analisados. O designer visual usa o resultado da expressão avaliada para atribuir valores de propriedade de controle que são renderizados na superfície de design.
Notas aos Implementadores
Classes derivadas da ExpressionEditor classe devem substituir o EvaluateExpression(String, Object, Type, IServiceProvider) método para avaliar o tipo de expressão personalizada no momento do design.
No mínimo, uma implementação EvaluateExpression(String, Object, Type, IServiceProvider) deve usar as seguintes etapas:
Avalie a cadeia de caracteres de expressão e determine o objeto referenciado pela expressão.
Retornar
null
, se a cadeia de caracteres de expressão não puder ser avaliada.Use o IsAssignableFrom(Type) método
propertyType
para determinar se o objeto referenciado pode ser atribuído diretamente ao tipo de propriedade de controle e, dependendo do resultado, conclua uma das seguintes ações:
Se o objeto referenciado puder ser atribuído diretamente à propriedade de controle, retorne o objeto referenciado para a expressão.
Se o objeto referenciado for um tipo simples, como uma cadeia de caracteres, retorne o objeto referenciado.
Caso contrário, determine se o objeto referenciado pode ser atribuído ou convertido no tipo de propriedade.
- Use o CanConvertFrom método no TypeConverter objeto para
propertyType
determinar se o objeto referenciado pode ser convertido no tipo de propriedade de controle e, dependendo do resultado, conclua uma das seguintes ações:
Se o objeto puder ser convertido no tipo de propriedade de controle, retorne o objeto convertido usando o ConvertFrom método.
Se o objeto referenciado não puder ser atribuído ou convertido
propertyType
, retorne o objeto referenciado.
Opcionalmente, a EvaluateExpression(String, Object, Type, IServiceProvider) implementação pode usar o parseTimeData
objeto fornecido pela ParseExpression(String, Type, ExpressionBuilderContext) implementação para otimizar ou ajudar na avaliação da cadeia de caracteres de expressão de entrada.