Udostępnij za pośrednictwem


Interfejsy ewaluatora wyrażeń kluczowych

Ważne

W programie Visual Studio 2015 ten sposób implementowania ewaluatorów wyrażeń jest przestarzały. Aby uzyskać informacje na temat implementowania ewaluatorów wyrażeń CLR, zobacz ewaluatory wyrażeń CLR i przykład ewaluatora wyrażeń zarządzanych.

Podczas pisania ewaluatora wyrażeń (EE) wraz z kontekstem oceny należy zapoznać się z następującymi interfejsami.

Opisy interfejsów

  • IDebugAddress

    Ma jedną metodę GetAddress, która pobiera strukturę danych reprezentującą bieżący punkt wykonywania. Ta struktura danych jest jednym z trzech argumentów, które aparat debugowania przekazuje do metody EvaluateSync w celu obliczenia wyrażenia. Ten interfejs jest zwykle implementowany przez dostawcę symboli.

  • IDebugBinder

    Zawiera metodę Bind , która pobiera obszar pamięci zawierający bieżącą wartość symbolu. Biorąc pod uwagę zarówno metodę zawierającą, reprezentowaną przez obiekt IDebugObject , jak i sam symbol reprezentowany przez obiekt IDebugField , IDebugBinder::Bind zwraca wartość symbolu. IDebugBinder jest zwykle implementowany przez DE.

  • IDebugField

    Reprezentuje prosty typ danych. W przypadku bardziej złożonych typów, takich jak tablice i metody, użyj odpowiednio interfejsów IDebugArrayField i IDebugMethodField . IDebugContainerField to inny ważny interfejs pochodny, który reprezentuje symbole zawierające inne symbole, takie jak metody lub klasy. Interfejs IDebugField (i jego pochodne) jest zwykle implementowany przez dostawcę symboli.

    Obiekt IDebugField może służyć do znajdowania nazwy i typu symbolu, a wraz z obiektem IDebugBinder można użyć do znalezienia jego wartości.

  • IDebugObject

    Reprezentuje rzeczywiste bity wartości czasu wykonywania symbolu. Powiązanie przyjmuje obiekt IDebugField , który reprezentuje symbol i zwraca obiekt IDebugObject . Metoda GetValue zwraca wartość symbolu w buforze pamięci. De zazwyczaj implementuje ten interfejs, aby reprezentować wartość właściwości w pamięci.

  • IDebugExpressionEvaluator

    Ten interfejs reprezentuje samego ewaluatora wyrażeń. Metoda klucza to Parse, która zwraca interfejs IDebugParsedExpression .

  • IDebugParsedExpression

    Ten interfejs reprezentuje przeanalizowane wyrażenie gotowe do oceny. Metoda klucza to EvaluateSync , która zwraca wartość IDebugProperty2 reprezentującą wartość i typ wyrażenia.

  • IDebugProperty2

    Ten interfejs reprezentuje wartość i jego typ i jest wynikiem oceny wyrażenia.

Zobacz też