Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
-
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.
-
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::Bindretorna o valor do símbolo.IDebugBindernormalmente é implementado pela DE. -
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
IDebugFieldinterface (e seus derivados) normalmente é implementada pelo provedor de símbolos.Um
IDebugFieldobjeto 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. -
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.
-
Essa interface representa o próprio avaliador de expressão. O método de chave é Parse, que retorna uma interface 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.
-
Essa interface representa um valor e seu tipo e é o resultado de uma avaliação de expressão.