Principais interfaces do avaliador de expressão

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, confira Avaliadores de expressão CLR e Exemplo de avaliador de expressão gerenciado.

Ao escrever um EE (avaliador de expressão), 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. 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 que contém, 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 geralmente é 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 interface IDebugField (e seus derivados) normalmente é implementada pelo provedor de símbolos.

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

  • IDebugObject

    Representa os bits reais do valor de runtime 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 chave é Parse, que retorna uma interface IDebugParsedExpression.

  • IDebugParsedExpression

    Essa interface representa uma expressão analisada pronta para ser avaliada. O método 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