Поделиться через


Стратегия реализации вычислителя выражений

Важно!

В Visual Studio 2015 такая реализация вычислителя выражений была сделана нерекомендуемой. Сведения о реализации вычислителей выражений в среде CLR см. на страницах CLR expression evaluators (Вычислители выражений CLR) и Managed expression evaluator sample (Пример управляемого вычислителя выражений).

Один из способов быстрого создания вычислителя выражений (EE) — сначала реализовать минимальный код, необходимый для отображения локальных переменных в окне "Локальные ". Полезно понимать, что каждая строка в окне "Локальные" отображает имя, тип и значение локальной переменной, а все три представлены объектом IDebugProperty2 . Имя, тип и значение локальной переменной получается из IDebugProperty2 объекта путем вызова метода GetPropertyInfo . Дополнительные сведения о том, как отображать локальные переменные в окне "Локальные" см. в разделе "Отображение локальных параметров".

Обсуждение

Возможная последовательность реализации начинается с реализации IDebugExpressionEvaluator. Для отображения локальных языков необходимо реализовать методы Parse и GetMethodProperty . Вызов IDebugExpressionEvaluator::GetMethodProperty возвращает объект, представляющий метод: то есть объект IDebugMethodFieldIDebugProperty2. Сами методы не отображаются в окне "Локальные".

Метод EnumChildren должен быть реализован далее. Обработчик отладки вызывает этот метод, чтобы получить список локальных переменных и аргументов, передав IDebugProperty2::EnumChildrenguidFilter аргумент guidFilterLocalsPlusArgs. IDebugProperty2::EnumChildrenвызывает EnumArguments и EnumLocals, сочетая результаты в одном перечислении. Дополнительные сведения см. в разделе "Отображение локальных языков ".