Interfaces do avaliador de expressão-chave

Importante

No Visual Studio 2015, essa maneira de implementar avaliadores de expressão foi preterida. Para obter informações sobre como implementar avaliadores de expressão CLR, consulte Avaliadores de expressão CLR e Exemplo de avaliador de expressão gerenciada.

Ao escrever um avaliador de expressão (EE), juntamente com o contexto de avaliação, você deve estar familiarizado com as interfaces a seguir.

Descrições da interface

  • IDebugAddress

    Tem um único método, GetAddress,que obtém uma estrutura de dados que representa o ponto de execução atual. Essa estrutura de dados é um dos três argumentos que o DE (mecanismo de depuração) passa para o método EvaluateSync para avaliar uma expressão. Normalmente, essa interface é implementada pelo provedor de símbolos.

  • IDebugBinder

    Tem o método Bind, que obtém a área de memória que contém o valor atual de um símbolo. Dado o método de contenção, representado por um objeto IDebugObject e o próprio símbolo, representado por um objeto IDebugField, retorna o valor do IDebugBinder::Bind símbolo. IDebugBinder normalmente é implementado pelo DE.

  • IDebugField

    Representa um tipo de dados simples. Para tipos mais complexos, como matrizes e métodos, use as interfaces IDebugArrayField e IDebugMethodField derivadas, respectivamente. IDebugContainerField é outra interface derivada importante que representa símbolos que contêm outros símbolos, como métodos ou classes. A IDebugField interface (e seus derivados) normalmente é implementada pelo provedor de símbolos.

    Um objeto pode ser usado para encontrar o nome e o tipo de um símbolo e, junto com um IDebugField objeto IDebugBinder, pode ser usado para encontrar seu valor.

  • IDebugObject

    Representa os bits reais do valor de tempo de run-time de um símbolo. Bind recebe um objeto IDebugField, que representa um símbolo e retorna um objeto IDebugObject. O método GetValue retorna o valor do símbolo em um buffer de memória. Uma DE normalmente implementa essa interface para representar o valor de uma propriedade na memória.

  • IDebugExpressionEvaluator

    Essa interface representa o próprio avaliador de expressão. O método de chave é Analisar, que retorna uma interface IDebugParsedExpression.

  • IDebugParsedExpression

    Essa interface representa uma expressão analisado pronta para ser avaliada. O método de chave é EvaluateSync, que retorna um IDebugProperty2 que representa o valor e o tipo da expressão.

  • IDebugProperty2

    Essa interface representa um valor e seu tipo e é o resultado de uma avaliação de expressão.

Confira também