Стратегия реализации вычислителя выражений
Важно!
В Visual Studio 2015 такая реализация вычислителя выражений была сделана нерекомендуемой. Сведения о реализации вычислителей выражений в среде CLR см. на страницах CLR expression evaluators (Вычислители выражений CLR) и Managed expression evaluator sample (Пример управляемого вычислителя выражений).
Один из способов быстрого создания вычислителя выражений (EE) — сначала реализовать минимальный код, необходимый для отображения локальных переменных в окне "Локальные ". Полезно понимать, что каждая строка в окне "Локальные" отображает имя, тип и значение локальной переменной, а все три представлены объектом IDebugProperty2 . Имя, тип и значение локальной переменной получается из IDebugProperty2
объекта путем вызова метода GetPropertyInfo . Дополнительные сведения о том, как отображать локальные переменные в окне "Локальные" см. в разделе "Отображение локальных параметров".
Обсуждение
Возможная последовательность реализации начинается с реализации IDebugExpressionEvaluator. Для отображения локальных языков необходимо реализовать методы Parse и GetMethodProperty . Вызов IDebugExpressionEvaluator::GetMethodProperty
возвращает объект, представляющий метод: то есть объект IDebugMethodFieldIDebugProperty2
. Сами методы не отображаются в окне "Локальные".
Метод EnumChildren должен быть реализован далее. Обработчик отладки вызывает этот метод, чтобы получить список локальных переменных и аргументов, передав IDebugProperty2::EnumChildren
guidFilter
аргумент guidFilterLocalsPlusArgs
. IDebugProperty2::EnumChildren
вызывает EnumArguments и EnumLocals, сочетая результаты в одном перечислении. Дополнительные сведения см. в разделе "Отображение локальных языков ".