Condividi tramite


Interfacce dell'analizzatore di espressioni chiave

Importante

In Visual Studio 2015 questo modo di implementare gli 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 delle interfacce

  • 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 passati dal motore di debug (DE) al metodo EvaluateSync per valutare un'espressione. Questa interfaccia viene in genere implementata dal provider di simboli.

  • IDebugBinder

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

  • IDebugField

    Rappresenta un tipo di dati semplice. Per tipi più complessi, ad esempio matrici e metodi, usare rispettivamente le interfacce IDebugArrayField e IDebugMethodField derivate. IDebugContainerField è un'altra importante interfaccia derivata che rappresenta i simboli contenenti altri simboli, ad esempio metodi o classi. L'interfaccia IDebugField (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 trovarne il valore.

  • IDebugObject

    Rappresenta i bit effettivi del valore di run-time 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. Una de implementa in genere questa interfaccia per rappresentare il valore di una proprietà in memoria.

  • IDebugExpressionEvaluator

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

  • IDebugParsedExpression

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

  • IDebugProperty2

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

Vedere anche