ExpressionEditor.EvaluateExpression Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Avalia uma cadeia de expressão e fornece o valor em tempo de projeto para uma propriedade de controlo.
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 expressão para avaliar. A expressão não inclui o prefixo de expressão.
- parseTimeData
- Object
Um objeto contendo informação adicional de análise para avaliar expression. Isto é tipicamente fornecido pelo construtor de expressões.
- propertyType
- Type
O tipo da propriedade de controlo à qual expression está vinculada.
- serviceProvider
- IServiceProvider
Uma implementação de fornecedor de serviços fornecida pelo anfitrião projetista, usada para obter serviços adicionais em tempo de design.
Devoluções
O objeto referenciado pela cadeia de expressão avaliada, se a avaliação de expressão tiver sido bem-sucedida; caso contrário, null.
Observações
O hospedeiro designer visual utiliza o EvaluateExpression método para avaliar uma expressão e fornecer o valor em tempo de design para uma propriedade de controlo associada.
O designer visual usa o ExpressionBuilder.ParseExpression método para analisar a string de expressão em tempo de design e depois chama o EvaluateExpression método com os dados de expressão analisados. O designer visual utiliza o resultado da expressão avaliada para atribuir valores de propriedades de controlo que são renderizados na superfície do design.
Notas para Implementadores
As classes derivadas da ExpressionEditor classe devem sobrepor-se ao EvaluateExpression(String, Object, Type, IServiceProvider) método para avaliar o tipo de expressão personalizado no momento do design.
No mínimo, uma EvaluateExpression(String, Object, Type, IServiceProvider) implementação deve seguir os seguintes passos:
Avalie a cadeia de expressão e determine o objeto referenciado pela expressão.
Devolva
null, se a cadeia de expressão não puder ser avaliada.Use o IsAssignableFrom(Type) método para
propertyTypedeterminar se o objeto referenciado pode ser atribuído diretamente ao tipo de propriedade de controlo e, depois, dependendo do resultado, complete uma das seguintes ações:Se o objeto referenciado puder ser atribuído diretamente à propriedade de controlo, devolve-se o objeto referenciado para a expressão.
Se o objeto referenciado for um tipo simples, como uma cadeia, devolve o objeto referenciado.
Caso contrário, determine se o objeto referenciado pode ser atribuído ou convertido para o tipo de propriedade.
Use o CanConvertFrom método no TypeConverter objeto para
propertyTypedeterminar se o objeto referenciado pode ser convertido para o tipo de propriedade de controlo e, depois, dependendo do resultado, complete uma das seguintes ações:Se o objeto puder ser convertido para o tipo de propriedade de controlo, devolve o objeto convertido usando o ConvertFrom método.
Se o objeto referenciado não puder ser atribuído ou convertido para
propertyType, devolve 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 expressão de entrada.