Compartir a través de


Interfaces de evaluador de expresiones de clave

Importante

En Visual Studio 2015, esta forma de implementar evaluadores de expresiones está en desuso. Para obtener información sobre cómo implementar evaluadores de expresiones CLR, consulte Evaluadores de expresiones CLR y Ejemplo de evaluador de expresiones administradas.

Al escribir un evaluador de expresiones (EE), junto con el contexto de evaluación, debe estar familiarizado con las interfaces siguientes.

Descripciones de la interfaz

  • IDebugAddress

    Tiene un único método, GetAddress, que obtiene una estructura de datos que representa el punto de ejecución actual. Esta estructura de datos es uno de los tres argumentos que el motor de depuración (DE) transfiere al método EvaluateSync para evaluar una expresión. Normalmente, el proveedor de símbolos implementa esta interfaz.

  • IDebugBinder

    Tiene el método Bind, que obtiene el área de memoria que contiene el valor actual de un símbolo. Dado el método contenedor, representado por un objeto IDebugObject y el propio símbolo, representado por un objeto IDebugField, IDebugBinder::Bind devuelve el valor del símbolo. IDebugBinder normalmente se implementa mediante el DE.

  • IDebugField

    Representa un tipo de datos simple. Para tipos más complejos, como matrices y métodos, use las interfaces derivadas IDebugArrayField e IDebugMethodField, respectivamente. IDebugContainerField es otra interfaz derivada importante que representa símbolos que contienen otros símbolos, como métodos o clases. Normalmente, el proveedor de símbolos implementa la interfaz IDebugField (y sus derivados).

    Se puede usar un objeto IDebugField para buscar el nombre y el tipo de un símbolo y, junto con un objeto IDebugBinder, se puede usar para encontrar su valor.

  • IDebugObject

    Representa los bits reales del valor en tiempo de ejecución de un símbolo. Bind toma un objeto IDebugField, que representa un símbolo y devuelve un objeto IDebugObject. El método GetValue devuelve el valor del símbolo en un búfer de memoria. Normalmente, un DE implementa esta interfaz para representar el valor de una propiedad en memoria.

  • IDebugExpressionEvaluator

    Esta interfaz representa el propio evaluador de expresiones. El método de clave es Parse, que devuelve una interfaz IDebugParsedExpression.

  • IDebugParsedExpression

    Esta interfaz representa una expresión analizada lista para evaluarse. El método de clave es EvaluateSync, que devuelve un IDebugProperty2 que representa el valor y el tipo de la expresión.

  • IDebugProperty2

    Esta interfaz representa un valor y su tipo y es el resultado de una evaluación de expresiones.

Consulte también