Freigeben über


ILinkedUndoContext.BeginTransaction-Methode

Gruppieren Sie eine Reihe von Änderungen am Modell. Wenn eine Änderung fehlschlägt, können Sie die gesamte Gruppe abbrechen und das Modell bleibt unverändert. Rufen Sie Commit() auf, um die Transaktion abzuschließen. Wenn der Benutzer einen Rückgängigaufruf startet, wird ein Rollback für die gesamte Gruppe ausgeführt.

Namespace:  Microsoft.VisualStudio.Modeling.ExtensionEnablement
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Syntax

'Declaration
Function BeginTransaction ( _
    description As String _
) As ILinkedUndoTransaction
ILinkedUndoTransaction BeginTransaction(
    string description
)

Parameter

  • description
    Typ: System.String
    Eine Zeichenfolge, die die Transaktion identifiziert.

Rückgabewert

Typ: Microsoft.VisualStudio.Modeling.ExtensionEnablement.ILinkedUndoTransaction
Die neue Transaktion.Wenn die Änderungen abgeschlossen sind, führen Sie ein Commit oder Abbruch aus und geben Sie diese Transaktion frei.

Hinweise

Führen Sie diesen Vorgang im Initialisierer einer using-Klausel aus, dass die Transaktion verworfen wird, wenn Sie die Änderungen abgeschlossen wurden.

Eine Ausnahme, die innerhalb des Blocks using abgefangen wird, wird UML-Modelländerungen alle darin zurückzusetzen. Beachten Sie, dass dies nur auf Änderungen im UML-Modell gilt, und nicht auf Änderungen, die anderen Variablen, externe Datenbanken, Dateien vorgenommen wurden, u. a.

Transaktionen können geschachtelt werden.

Weitere Informationen finden Sie unter Gewusst wie: Verknüpfen von Modellaktualisierungen mithilfe von Transaktionen.

Beispiele

try
{
  using (ILinkedUndoTransaction transaction =
              LinkedUndoContext.BeginTransaction("Swap names"))
  { 
    Operation1(); 
    Operation2();
    // Any exception in the preceding statements
    // will undo all of the changes in the model.
    transaction.Commit(); // Always remember Commit()!
  }
}
catch ()
{
    // If control reaches here,
    // Operation1 and Operation2 have
    // made no change to the model.
}

.NET Framework-Sicherheit

Siehe auch

Referenz

ILinkedUndoContext Schnittstelle

Microsoft.VisualStudio.Modeling.ExtensionEnablement-Namespace