Интерфейсы вычислителя ключевых выражений
Внимание
В Visual Studio 2015 такая реализация вычислителя выражений была сделана нерекомендуемой. Сведения о реализации вычислителей выражений CLR см. в примере вычислителя выражений CLR и средства оценки управляемых выражений.
При написании вычислителя выражений (EE) вместе с контекстом оценки необходимо ознакомиться со следующими интерфейсами.
Описания интерфейса
-
Имеет один метод GetAddress, который получает структуру данных, представляющую текущую точку выполнения. Эта структура данных является одним из трех аргументов, которые обработчик отладки передает методу EvaluateSync для вычисления выражения. Обычно этот интерфейс реализуется поставщиком символов.
-
Имеет метод Bind, который получает область памяти, содержащую текущее значение символа. Учитывая как содержащий метод, представленный объектом IDebugObject, так и сам символ, представленный объектом IDebugField,
IDebugBinder::Bind
возвращает значение символа.IDebugBinder
обычно реализуется DE. -
Представляет простой тип данных. Для более сложных типов, таких как массивы и методы, используйте производные интерфейсы IDebugArrayField и IDebugMethodField соответственно. IDebugContainerField является еще одним важным производным интерфейсом, который представляет символы, содержащие другие символы, такие как методы или классы. Интерфейс
IDebugField
(и его производные) обычно реализуется поставщиком символов.Объект
IDebugField
можно использовать для поиска имени и типа символа, а также объекта IDebugBinder для поиска его значения. -
Представляет фактические биты значения времени выполнения символа. Bind принимает объект IDebugField , представляющий символ, и возвращает объект IDebugObject . Метод GetValue возвращает значение символа в буфере памяти. De обычно реализует этот интерфейс для представления значения свойства в памяти.
-
Этот интерфейс представляет сам средство оценки выражений. Ключевым методом является Parse, который возвращает интерфейс IDebugParsedExpression .
-
Этот интерфейс представляет вычисляемое выражение, готовое к анализу. Ключевым методом является EvaluateSync , который возвращает идентификатор IDebugProperty2, представляющий значение и тип выражения.
-
Этот интерфейс представляет значение и его тип и является результатом вычисления выражения.