Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
In Visual Studio 2015 ist diese Methode der Implementierung von Ausdrucksvaluatoren veraltet. Informationen zur Implementierung von CLR-Ausdrucksauswertern finden Sie unter CLR-Ausdrucksauswerter und im Beispiel für einen verwalteten Ausdrucksauswerter.
Wenn Sie einen Ausdrucksauswerter (EE) zusammen mit dem Auswertungskontext schreiben, sollten Sie mit den folgenden Schnittstellen vertraut sein.
Schnittstellenbeschreibungen
-
Verfügt über eine einzelne Methode, GetAddress, die eine Datenstruktur abruft, die den aktuellen Ausführungspunkt darstellt. Diese Datenstruktur ist eines der drei Argumente, die das Debugmodul (DE) an die EvaluateSync-Methode übergibt, um einen Ausdruck auszuwerten. Diese Schnittstelle wird in der Regel vom Symbolanbieter implementiert.
-
Verfügt über die Bind-Methode , die den Speicherbereich abruft, der den aktuellen Wert eines Symbols enthält. Da sowohl die enthaltende Methode, dargestellt durch ein IDebugObject-Objekt , als auch das Symbol selbst, dargestellt durch ein IDebugField-Objekt ,
IDebugBinder::Bindden Wert des Symbols zurückgibt.IDebugBinderwird in der Regel von der DE implementiert. -
Stellt einen einfachen Datentyp dar. Verwenden Sie für komplexere Typen wie Arrays und Methoden die abgeleiteten IDebugArrayField - bzw. IDebugMethodField-Schnittstellen . IDebugContainerField ist eine weitere wichtige abgeleitete Schnittstelle, die Symbole darstellt, die andere Symbole enthalten, z. B. Methoden oder Klassen. Die
IDebugFieldSchnittstelle (und deren Ableitungen) wird in der Regel vom Symbolanbieter implementiert.Ein
IDebugFieldObjekt kann verwendet werden, um den Namen und typ eines Symbols zu finden, und zusammen mit einem IDebugBinder-Objekt kann verwendet werden, um seinen Wert zu finden. -
Stellt die tatsächlichen Bits des Laufzeitwerts eines Symbols dar. Bind akzeptiert ein IDebugField -Objekt, das ein Symbol darstellt, und gibt ein IDebugObject -Objekt zurück. Die GetValue-Methode gibt den Wert des Symbols in einem Speicherpuffer zurück. Eine DE implementiert diese Schnittstelle in der Regel, um den Wert einer Eigenschaft im Arbeitsspeicher darzustellen.
-
Diese Schnittstelle stellt den Ausdrucksauswerter dar. Die Schlüsselmethode ist Parse, die eine IDebugParsedExpression-Schnittstelle zurückgibt.
-
Diese Schnittstelle stellt einen analysierten Ausdruck dar, der ausgewertet werden kann. Die Schlüsselmethode ist EvaluateSync , die einen IDebugProperty2 zurückgibt, der den Wert und typ des Ausdrucks darstellt.
-
Diese Schnittstelle stellt einen Wert und seinen Typ dar und ist das Ergebnis einer Ausdrucksauswertung.