Freigeben über


ILinkedUndoContext.BeginTransaction-Methode

Gruppieren Sie eine Reihe von Änderungen am Modell.Wenn eine Änderung verursacht, können Sie die gesamte Gruppe aus und ermöglicht das Abbrechen des Modells unverändert.Aufruf Commit(), um die Transaktion abzuschließen.Wenn der Benutzer rückgängig machen, wird ein Rollback für die gesamte Gruppe zurück.

Namespace:  Microsoft.VisualStudio.Modeling.ExtensionEnablement
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.11.0 (in Microsoft.VisualStudio.Modeling.Sdk.11.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 wurden, führen Sie ein Commit oder Abbruch und geben Sie dieser Transaktion frei.

Hinweise

Führen Sie diesen Vorgang im Initialisierer einer using-Klausel aus, um sicherzustellen, dass die Transaktion freigegeben wird, wenn Sie die Änderungen abgeschlossen wurde.

Eine Ausnahme, die nicht innerhalb des using-Block abgefangen wird, bewirkt, dass alle Änderungen des UML-Modells darin zurückzusetzen.Beachten Sie, dass dies nur für Änderungen im UML-Modell gilt, und nicht zu den Änderungen, die an anderen Variablen, externe Datenbanken, Dateien vorgenommen wurden usw.

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