Stratégie d’implémentation de l’évaluateur d’expression
Important
Dans Visual Studio 2015, cette façon d’implémenter des évaluateurs d’expression est déconseillée. Pour plus d’informations sur l’implémentation d’évaluateurs d’expression CLR, consultez l’exemple d’évaluateur d’expression CLR et d’évaluateur d’expression managée.
Une approche pour créer rapidement un évaluateur d’expression (EE) consiste à implémenter d’abord le code minimal nécessaire pour afficher des variables locales dans la fenêtre Locals . Il est utile de réaliser que chaque ligne de la fenêtre Locals affiche le nom, le type et la valeur d’une variable locale, et que les trois sont représentés par un objet IDebugProperty2 . Le nom, le type et la valeur d’une variable locale sont obtenus à partir d’un IDebugProperty2
objet en appelant sa méthode GetPropertyInfo . Pour plus d’informations sur l’affichage des variables locales dans la fenêtre Locals , consultez Affichage des variables locales.
Discussion
Une séquence d’implémentation possible commence par l’implémentation d’IDebugExpressionEvaluator. Les méthodes Parse et GetMethodProperty doivent être implémentées pour afficher les variables locales. L’appel IDebugExpressionEvaluator::GetMethodProperty
renvoie un IDebugProperty2
objet qui représente une méthode : autrement dit, un objet IDebugMethodField . Les méthodes elles-mêmes ne sont pas affichées dans la fenêtre Locals .
La méthode EnumChildren doit être implémentée suivante. Le moteur de débogage appelle cette méthode pour obtenir une liste de variables et d’arguments locaux en passant IDebugProperty2::EnumChildren
un guidFilter
argument .guidFilterLocalsPlusArgs
IDebugProperty2::EnumChildren
appelle EnumArguments et EnumLocals, combinant les résultats dans une seule énumération. Pour plus d’informations, consultez Afficher les locaux.