Interfacce dell'analizzatore di espressioni chiave

Importante

In Visual Studio 2015, questo metodo di implementazione degli analizzatori di espressioni è deprecato. Per informazioni sull'implementazione degli analizzatori di espressioni CLR, vedere l'esempio degli analizzatori di espressioni CLR e dell' analizzatore di espressioni gestite.

Quando si scrive un analizzatore di espressioni (EE) insieme al contesto di valutazione, è necessario avere familiarità con le interfacce seguenti.

Descrizioni dell'interfaccia

  • IDebugAddress

    Dispone di un singolo metodo, GetAddress, che ottiene una struttura di dati che rappresenta il punto di esecuzione corrente. Questa struttura di dati è uno dei tre argomenti che il motore di debug (DE) passa al metodo EvaluateSync per valutare un'espressione. Questa interfaccia viene in genere implementata dal provider di simboli.

  • IDebugBinder

    Dispone del metodo Bind , che ottiene l'area di memoria che contiene il valore corrente di un simbolo. Dato che il metodo che lo contiene, rappresentato da un oggetto IDebugObject e il simbolo stesso, rappresentato da un oggetto IDebugField , IDebugBinder::Bind restituisce il valore del simbolo. IDebugBinder viene in genere implementato da DE.

  • IDebugField

    Rappresenta un tipo di dati semplice. Per i tipi più complessi, ad esempio matrici e metodi, utilizzare rispettivamente le interfacce IDebugArrayField e IDebugMethodField derivate. IDebugContainerField è un'altra importante interfaccia derivata che rappresenta simboli contenenti altri simboli, ad esempio metodi o classi. L' IDebugField interfaccia (e i relativi derivati) viene in genere implementata dal provider di simboli.

    Un IDebugField oggetto può essere usato per trovare il nome e il tipo di un simbolo e, insieme a un oggetto IDebugBinder , può essere usato per trovare il relativo valore.

  • IDebugObject

    Rappresenta i bit effettivi del valore in fase di esecuzione di un simbolo. Bind accetta un oggetto IDebugField che rappresenta un simbolo e restituisce un oggetto IDebugObject . Il metodo GetValue restituisce il valore del simbolo in un buffer di memoria. Un DE in genere implementa questa interfaccia per rappresentare il valore di una proprietà in memoria.

  • IDebugExpressionEvaluator

    Questa interfaccia rappresenta l'analizzatore di espressioni. Il metodo Key è Parse, che restituisce un'interfaccia IDebugParsedExpression .

  • IDebugParsedExpression

    Questa interfaccia rappresenta un'espressione analizzata pronta per la valutazione. Il metodo Key è EvaluateSync che restituisce un IDebugProperty2 che rappresenta il valore e il tipo dell'espressione.

  • IDebugProperty2

    Questa interfaccia rappresenta un valore e il relativo tipo ed è il risultato della valutazione di un'espressione.

Vedi anche