Freigeben über


IDataModelScript::Execute-Methode (dbgmodel.h)

Die Execute-Methode führt den Inhalt des Skripts wie durch den letzten erfolgreichen Auffüllaufruf diktieren aus und ändert das Objektmodell des Debuggers entsprechend diesem Inhalt. Wenn die Sprache (oder der Skriptanbieter) eine "Hauptfunktion" definiert – eine, die der Autor aufgerufen werden soll, wenn er auf eine imaginäre Schaltfläche "Skript ausführen" in einer Benutzeroberfläche klickt - wird diese "Hauptfunktion" während eines Execute-Vorgangs nicht aufgerufen. Der Execute-Vorgang kann nur als Initialisierungs- und Objektmodellmanipulation betrachtet werden (z. B. Ausführen von Stammcode und Einrichten von Erweiterungspunkten). Die Ausführung eines Skripts ist eine bidirektionale Kommunikation zwischen dem Skriptanbieter und dem Skriptclient. Fehler, Debuggingsteuerelemente und andere Semantik werden über den Kommunikationskanal zwischen IDataModelScript und IDataModelScriptClientübergeben.

Je nachdem, ob der Ausführungsvorgang erfolgreich ist oder fehlschlägt, sollte eines von zwei Dingen geschehen:

Für eine erfolgreiche Rückgabe:

  • Der zuvor ausgeführte Inhalt des Skripts wird geleert und vergessen.
  • Alle Objektmodellmanipulationen oder Erweiterungspunkte, die aufgrund der vorherigen Ausführung des Skripts geändert wurden, werden rückgängig gemacht.
  • Die Objektmodellbearbeitungen und Erweiterungspunkte der neuen Ausführung des Skripts sind aktiv.

Für eine fehlgeschlagene Rückgabe:

  • Alle Manipulations- oder Erweiterungspunkte der neuen versuchten Ausführung des Skripts werden rückgängig gemacht.
  • Der vorherige Zustand des Skripts wird wiederhergestellt. Alle Bearbeitungen und Erweiterungspunkte des Objektmodells werden wiederhergestellt.
  • Der Zustand sollte wie nach dem erfolgreichen Auffüllen des Anrufs sein, aber vor jedem Execute-Aufruf

Beachten Sie, dass für einen ordnungsgemäß geschriebenen Skriptanbieter und eine Skriptumgebung, die Execute-Methode mehrmals aufgerufen wird, ohne dass ein dazwischen liegender Aufruf zum Auffüllen oder Aufheben der Verknüpfung "idempotent sein sollte. Das heißt, das Aufrufen von Execute N-Mal in einer Zeile sollte dem Benutzer dasselbe wie das einmalige Aufrufen von Execute angezeigt werden. Die Ausführung sollte keine nebeneffektierenden Ergebnisse für den Zustand des Debugziels erzeugen. Anschließend kann die Verwendung von Eigenschaften, Methoden oder Ereignissen auf der über die Execute-Methode erzeugten Brücke tatsächlich nebenwirkungend wirkende Ergebnisse erzeugen.

Syntax

HRESULT Execute(
  IDataModelScriptClient *client
);

Parameter

client

Hier sollte eine Schnittstelle zum Client übergeben werden, der die Ausführung anfordert. Wenn während der Ausführung des Skripts Fehler oder andere Ereignisse auftreten, sollte der Client über Methoden auf dieser Schnittstelle über die Methoden des Skripts über diese Schnittstelle benachrichtigt werden.

Rückgabewert

Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.

Anforderungen

Anforderung Wert
Header- dbgmodel.h

Siehe auch

IDataModelScript-Schnittstelle