Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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ů.
-
Metoda Bind, která vrací oblast paměti, obsahující aktuální hodnotu symbolu. Vzhledem k tomu, že je metoda obsažena v objektu IDebugObject a symbol samotný je reprezentován objektem IDebugField,
IDebugBinder::Bindvrátí hodnotu symbolu.IDebugBinderje obvykle implementováno rozhraním 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
IDebugFieldlze 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 ve vyrovnávací paměti. De obvykle implementuje toto rozhraní, které představuje hodnotu vlastnosti v paměti.
-
Toto rozhraní představuje vyhodnocovač výrazů. Klíčová metoda je Parse, která vrací rozhraní IDebugParsedExpression.
-
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.