Strategia implementacji ewaluatora wyrażeń

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 clR expression evaluators and Managed expression evaluator sample (Przykład ewaluatora wyrażeń zarządzanych).

Jednym z podejść do szybkiego tworzenia ewaluatora wyrażeń (EE) jest najpierw zaimplementowanie minimalnego kodu niezbędnego do wyświetlania zmiennych lokalnych w oknie Ustawienia lokalne . Warto pamiętać, że każdy wiersz w oknie Ustawienia lokalne wyświetla nazwę, typ i wartość zmiennej lokalnej oraz że wszystkie trzy są reprezentowane przez obiekt IDebugProperty2 . Nazwa, typ i wartość zmiennej lokalnej jest uzyskiwana z IDebugProperty2 obiektu przez wywołanie metody GetPropertyInfo . Aby uzyskać więcej informacji na temat wyświetlania zmiennych lokalnych w oknie Ustawienia lokalne , zobacz Wyświetlanie ustawień lokalnych.

Dyskusja

Możliwa sekwencja implementacji rozpoczyna się od implementacji IDebugExpressionEvaluator. Metody Parse i GetMethodProperty należy zaimplementować w celu wyświetlania ustawień lokalnych. Wywołanie IDebugExpressionEvaluator::GetMethodProperty zwraca obiekt reprezentujący metodę IDebugProperty2 : czyli obiekt IDebugMethodField . Same metody nie są wyświetlane w oknie Ustawienia lokalne .

Następnie należy zaimplementować metodę EnumChildren . Aparat debugowania (DE) wywołuje tę metodę, aby uzyskać listę zmiennych lokalnych i argumentów, przekazując IDebugProperty2::EnumChildrenguidFilter argument .guidFilterLocalsPlusArgs IDebugProperty2::EnumChildren wywołuje metodę EnumArguments i EnumLocals, łącząc wyniki w jednym wyliczeniem. Aby uzyskać więcej informacji, zobacz Wyświetlanie ustawień lokalnych.