Compartilhar via


Interfaces do avaliador de expressão chave

Importante

No Visual Studio 2015, essa forma de implementar avaliadores de expressão é preterida. Para obter informações sobre como implementar avaliadores de expressão CLR, consulte os avaliadores de expressão CLR e o exemplo do avaliador de expressão gerenciada.

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

Descrições de interface

  • IDebugAddress

    Tem um único método, GetAddress, que obtém uma estrutura de dados que representa o ponto atual de execução. 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. Essa interface normalmente é 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 , IDebugBinder::Bind retorna o valor do símbolo. IDebugBinder normalmente é implementado pela 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 IDebugField objeto pode ser usado para localizar o nome e o tipo de um símbolo e, juntamente com um objeto IDebugBinder , pode ser usado para localizar seu valor.

  • IDebugObject

    Representa os bits reais do valor de tempo de execução de um símbolo. Bind usa 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. Um 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 é Parse, que retorna uma interface IDebugParsedExpression .

  • IDebugParsedExpression

    Essa interface representa uma expressão analisada 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.

Consulte também