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
-
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.
-
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. -
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. -
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.
-
Esta interfaz representa el propio evaluador de expresiones. El método de clave es Parse, que devuelve una interfaz 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.
-
Esta interfaz representa un valor y su tipo y es el resultado de una evaluación de expresiones.