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.