Rozhraní vyhodnocovače klíčových výrazů
Důležité
V sadě Visual Studio 2015 je tento způsob implementace vyhodnocovačů výrazů zastaralý. Informace o implementaci vyhodnocovačů výrazů CLR najdete v tématu vyhodnocovače výrazů CLR a ukázka vyhodnocovače spravovaných výrazů.
Při psaní vyhodnocovače výrazů (EE) spolu s kontextem vyhodnocení byste měli být obeznámeni s následujícími rozhraními.
Popisy rozhraní
-
Má jednu metodu GetAddress, která získá datovou strukturu, která představuje aktuální bod provádění. Tato datová struktura je jedním ze tří argumentů, které ladicí modul (DE) předává metodě EvaluateSync k vyhodnocení výrazu. Toto rozhraní obvykle implementuje poskytovatel symbolů.
-
Má Bind metoda, která získá oblast paměti, která obsahuje aktuální hodnotu symbolu. Vzhledem k tomu, obsahující metody, reprezentované IDebugObject objektu, a symbol samotný, reprezentovaný IDebugField objektu,
IDebugBinder::Bind
vrátí hodnotu symbolu.IDebugBinder
je obvykle implementováno de. -
Představuje jednoduchý datový typ. Pro složitější typy, jako jsou pole a metody, použijte odvozené IDebugArrayField a IDebugMethodField rozhraní, v uvedeném pořadí. IDebugContainerField je další důležité odvozené rozhraní, které představuje symboly obsahující jiné symboly, jako jsou metody nebo třídy. Rozhraní
IDebugField
(a jeho deriváty) je obvykle implementováno poskytovatelem symbolů.Objekt
IDebugField
lze použít k vyhledání názvu a typu symbolu a společně s objektem IDebugBinder lze najít jeho hodnotu. -
Představuje skutečné bity hodnoty běhu symbolu. Bind přebírá IDebugField objekt, který představuje symbol a vrací IDebugObject objektu. Metoda GetValue vrátí hodnotu symbolu v vyrovnávací paměti. De obvykle implementuje toto rozhraní, které představuje hodnotu vlastnosti v paměti.
-
Toto rozhraní představuje samotný vyhodnocovací modul výrazu. Key Method je Parse, který vrací IDebugParsedExpression rozhraní.
-
Toto rozhraní představuje analyzovaný výraz připravený k vyhodnocení. Metoda key je EvaluateSync , která vrací IDebugProperty2 představující hodnotu a typ výrazu.
-
Toto rozhraní představuje hodnotu a její typ a je výsledkem vyhodnocení výrazu.