Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 Ejemplo de evaluador de expresiones CLR y 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 pasa el motor de depuración (DE) 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::Binddevuelve el valor del símbolo.IDebugBindernormalmente se implementa mediante el DE. -
Representa un tipo de datos simple. Para tipos más complejos, como matrices y métodos, use las interfaces IDebugArrayField e IDebugMethodField derivadas, 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
IDebugFieldinterfaz (y sus derivados).Un objeto
IDebugFieldpuede utilizarse para identificar el nombre y el tipo de un símbolo y, junto con un objeto IDebugBinder, puede utilizarse 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.