Интерфейсы вычислителя ключевых выражений

Внимание

В Visual Studio 2015 такая реализация вычислителя выражений была сделана нерекомендуемой. Сведения о реализации вычислителей выражений CLR см. в примере вычислителя выражений CLR и средства оценки управляемых выражений.

При написании вычислителя выражений (EE) вместе с контекстом оценки необходимо ознакомиться со следующими интерфейсами.

Описания интерфейса

  • IDebugAddress

    Имеет один метод GetAddress, который получает структуру данных, представляющую текущую точку выполнения. Эта структура данных является одним из трех аргументов, которые обработчик отладки передает методу EvaluateSync для вычисления выражения. Обычно этот интерфейс реализуется поставщиком символов.

  • IDebugBinder

    Имеет метод Bind, который получает область памяти, содержащую текущее значение символа. Учитывая как содержащий метод, представленный объектом IDebugObject, так и сам символ, представленный объектом IDebugField, IDebugBinder::Bind возвращает значение символа. IDebugBinder обычно реализуется DE.

  • IDebugField

    Представляет простой тип данных. Для более сложных типов, таких как массивы и методы, используйте производные интерфейсы IDebugArrayField и IDebugMethodField соответственно. IDebugContainerField является еще одним важным производным интерфейсом, который представляет символы, содержащие другие символы, такие как методы или классы. Интерфейс IDebugField (и его производные) обычно реализуется поставщиком символов.

    Объект IDebugField можно использовать для поиска имени и типа символа, а также объекта IDebugBinder для поиска его значения.

  • IDebugObject

    Представляет фактические биты значения времени выполнения символа. Bind принимает объект IDebugField , представляющий символ, и возвращает объект IDebugObject . Метод GetValue возвращает значение символа в буфере памяти. De обычно реализует этот интерфейс для представления значения свойства в памяти.

  • IDebugExpressionEvaluator

    Этот интерфейс представляет сам средство оценки выражений. Ключевым методом является Parse, который возвращает интерфейс IDebugParsedExpression .

  • IDebugParsedExpression

    Этот интерфейс представляет вычисляемое выражение, готовое к анализу. Ключевым методом является EvaluateSync , который возвращает идентификатор IDebugProperty2, представляющий значение и тип выражения.

  • IDebugProperty2

    Этот интерфейс представляет значение и его тип и является результатом вычисления выражения.

См. также