Transaction-Klasse
Eine Transaktion wird sichergestellt, dass Änderungen, die im Speicher vorgenommen wurden, als Gruppe behandelt werden, die ein Commit oder Rollback ausgeführt werden kann.
Vererbungshierarchie
System.Object
System.MarshalByRefObject
Microsoft.VisualStudio.Modeling.Transaction
Namespace: Microsoft.VisualStudio.Modeling
Assembly: Microsoft.VisualStudio.Modeling.Sdk.11.0 (in Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)
Syntax
'Declaration
Public Class Transaction _
Inherits MarshalByRefObject _
Implements IDisposable
public class Transaction : MarshalByRefObject,
IDisposable
Der Transaction-Typ macht die folgenden Member verfügbar.
Eigenschaften
Name | Beschreibung | |
---|---|---|
Context | Ruft die Transaktion ab und ermöglicht Clients zum Anfügen von Benutzerdaten in die Transaktion. | |
ContextInstance | Ruft Context für diese Transaktion ab. | |
ForceAllRulesToCommitTime | Ruft ein Flag ab, das alle geschachtelten Regeln erzwungen werden soll, an LocalCommit-Zeit für die aktuelle Transaktion eintritt. | |
HasPendingChanges | Ruft die Transaktion ab und überprüft, ob Änderungen im Speicher während der Transaktion vorgenommen wurden. | |
HaveCommitTimeRulesFired | Gibt an, ob die Steuerung des Commits oder nicht ausgelöst wurden | |
Id | Ruft die ID für diese Transaktion ab. | |
InRollback | Ruft die Transaktion ab und überprüfen, ob diese Transaktion zurückgesetzt wird. | |
IsActive | Ruft die Transaktion ab und überprüfen, ob diese Transaktion verarbeitet. | |
IsHidden | Ruft die Transaktion ab und überprüft, ob die Transaktion ausgeblendet ist. | |
IsNested | Ruft die Transaktion ab und überprüft, ob eine Transaktion innerhalb einer anderen Transaktion geschachtelt ist. | |
IsSerializing | Ruft die Transaktion ab und überprüft, ob die Transaktion nur serialisiert. | |
Name | Ruft den Namen der Transaktion fest. | |
Parent | Ruft die Transaktion auf der obersten Ebene ab, die in der geschachtelten Transaktion zugewiesen wird. | |
PartitionStates | Ruft Informationen über den Zustand aller Partitionen im Speicher ab. | |
SequenceNumber | Ruft die Sequenznummer der Transaktion ab. | |
Store | Ruft den Speicher ab, dem die Transaktion gehört. | |
TopLevelTransaction | Ruft die Transaktion auf der obersten Ebene der Hierarchie der Transaktion ab. | |
TransactionDepth | Ruft die Anzahl von Transaktionen ab, in denen diese Transaktion geschachtelt ist. |
Zum Seitenanfang
Methoden
Name | Beschreibung | |
---|---|---|
Commit | Führt ein Commit der Transaktion aus. | |
CreateObjRef | Sicherheitsrelevant. Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind. (Von MarshalByRefObject geerbt.) | |
Dispose | Gibt den Zustand der Transaktion frei. | |
Equals | Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.) | |
Finalize | Schließt die Transaktion ab. (Überschreibt Object.Finalize().) | |
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) | |
GetLifetimeService | Sicherheitsrelevant. Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert. (Von MarshalByRefObject geerbt.) | |
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) | |
InitializeLifetimeService | Sicherheitsrelevant. Ruft ein Lebensdauerdienstobjekt ab, mit dem die Lebensdauerrichtlinien für diese Instanz gesteuert werden können. (Von MarshalByRefObject geerbt.) | |
MemberwiseClone() | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) | |
MemberwiseClone(Boolean) | Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts. (Von MarshalByRefObject geerbt.) | |
Rollback | Der Speicher wird zurück an den Zustand festgelegt, dass sie war, als die Transaktion in erstellt wurde. | |
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
Zum Seitenanfang
Erweiterungsmethoden
Name | Beschreibung | |
---|---|---|
GetSerializationContext | Rufen Sie das SerializationContext ab, das im Rahmen der angegebenen Transaktion aktiv ist.Das SerializationContext wird im TranactionContext des Serialisierens von Transaktionen gespeichert.Wenn die Transaktion geschachtelt ist, wird der transaktionalen stapel durchsucht, um die nächste einschließende Transaktion zum Bereitstellen mit einem SerializationContext zu suchen. (Durch SerializationContextTransactionExtensions definiert.) |
Zum Seitenanfang
Hinweise
Eine Transaktion können Sie Gruppenwechseln.Es wird außerdem die Aktionen, die in einer Transaktion ausgeführt werden, damit sie in einem späteren Phase rückgängig gemacht werden können.
Änderungen im Speicher müssen im Rahmen einer Transaktion erfolgen.Änderungen im Speicher werden nur dann, wenn die commite Transaktionen vorgenommen.Eine Transaktion kann den Speicher die Änderungen annehmen können, wenn das lokale Transaktion ein Commit ausgeführt wird oder wenn der obersten Ebene für die Transaktion ein Commit ausgeführt wird.Platzgeschäfte werden in einer Transaktion der obersten Ebene.Eine geschachtelte Transaktion muss einen Commit oder Rollback, bevor die nächste Transaktion der obersten Ebene einen Commit oder Rollback kann.Weitere Informationen finden Sie im Beispiel für die TransactionDepth-Eigenschaft.
Eine Transaktion verwaltet außerdem die Aktionen, die ausgeführt wurden.Dies ermöglicht eine Gruppe von Aktionen, mit der UndoManager-Eigenschaft in einem späteren Phase rückgängig gemacht bzw. wiederholt werden soll.
Eine Transaktion muss freigegeben werden.Dies kann erfolgen, indem die Dispose-Methode oder die Transaktion in einem Using Konstrukt erstellt.Wenn die Transaktion kein Commit ausgeführt wurde, wenn sie verworfen wird, wird die Transaktion automatisch zurückgesetzt, und die Änderungen werden verworfen.
Beispiele
Im folgenden Beispiel wird eine Transaktion an, die den Speicher ändert.Die Transaktion wird ein Commit ausgeführt.Wenn die Transaktion zurückgesetzt wird, werden alle ausstehenden Änderungen im Speicher abgebrochen.Die Transaktion wird automatisch am Ende des using-Block freigegeben.
using (Transaction txCreateElem = model.Store.TransactionManager.BeginTransaction("Create named element")
{
A a = new A(store);
a.Name = "Fred";
// Commit the transaction and add the named element to the model
txCreateElem.Commit();
}
Weitere Informationen und Beispiele finden Sie unter Using Transactions.
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.