Estrategia de implementación del evaluador de expresiones
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, vea Evaluadores de expresiones CLR y Ejemplo de evaluador de expresiones administradas.
Un enfoque para crear rápidamente un evaluador de expresiones (EE) es implementar primero el código mínimo necesario para mostrar variables locales en la ventana Variables locales . Resulta útil tener en cuenta que cada línea de la ventana Variables locales muestra el nombre, el tipo y el valor de una variable local, y que los tres se representan mediante un objeto IDebugProperty2 . El nombre, el tipo y el valor de una variable local se obtienen de un IDebugProperty2
objeto llamando a su método GetPropertyInfo . Para obtener más información sobre cómo mostrar variables locales en la ventana Variables locales, vea Mostrar variables locales.
Una posible secuencia de implementación comienza con la implementación de IDebugExpressionEvaluator. Los métodos Parse y GetMethodProperty deben implementarse para mostrar variables locales. La llamada IDebugExpressionEvaluator::GetMethodProperty
a devuelve un IDebugProperty2
objeto que representa un método: es decir, un objeto IDebugMethodField . Los propios métodos no se muestran en la ventana Variables locales .
El método EnumChildren debe implementarse a continuación. El motor de depuración (DE) llama a este método para obtener una lista de variables y argumentos locales pasando IDebugProperty2::EnumChildren
un guidFilter
argumento de guidFilterLocalsPlusArgs
. IDebugProperty2::EnumChildren
llama a EnumArguments y EnumLocals, combinando los resultados en una sola enumeración. Consulte Mostrar variables locales para obtener más detalles.