Transaction-Klasse
Eine Transaktion stellt sicher, dass Änderungen, die im Speicher vorgenommen wurden, als Gruppe behandelt werden, auf 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.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.12.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 das Anfügen von Benutzerdaten in die Transaktion. | |
ContextInstance | Ruft den Context für diese Transaktion ab. | |
ForceAllRulesToCommitTime | Ruft ein Flag ab oder legt dieses fest, das erzwingt, dass alle geschachtelten Regeln zur LocalCommit-Zeit für die aktuelle Transaktion erfolgen. | |
HasPendingChanges | Ruft die Transaktion ab und überprüft, ob Änderungen im Speicher während der Transaktion vorgenommen wurden. | |
HaveCommitTimeRulesFired | Gibt an, ob die Commitzeitregeln ausgelöst wurden. | |
Id | Ruft die ID für diese Transaktion ab. | |
InRollback | Ruft die Transaktion ab und überprüft, ob diese Transaktion zurückgesetzt wird. | |
IsActive | Ruft die Transaktion ab und überprüft, ob diese Transaktion verarbeitet wird. | |
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 derzeit serialisiert. | |
Name | Ruft den Namen der Transaktion ab bzw. legt ihn 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, zu der die Transaktion gehört. | |
TopLevelTransaction | Ruft die Transaktion auf der obersten Ebene der Transaktionshierarchie 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 die Standardhashfunktion. (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 in den Zustand zurückversetzt, in dem er sich befand, als die Transaktion erstellt wurde. | |
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
Zum Seitenanfang
Erweiterungs methoden
Name | Beschreibung | |
---|---|---|
GetSerializationContext | Ruft das SerializationContext ab, das im Kontext der angegebenen Transaktion aktiv ist.Der SerializationContext wird im TranactionContext von Serialisierungstransaktionen gespeichert.Wenn die Transaktion geschachtelt ist, wird der Transaktionsstapel durchsucht, um die nächste einschließende Serialisierungstransaktion mit SerializationContext zu finden. (Durch SerializationContextTransactionExtensions definiert.) |
Zum Seitenanfang
Hinweise
Eine Transaktion können Sie die Änderungen. Sie wird auch die Aktionen nachverfolgt, die in einer Transaktion ausgeführt werden, dass sie in einem späteren Phase rückgängig gemacht werden können.
Änderungen am Speicher müssen ausgeführt werden in einer Transaktion. Änderungen am Speicher werden nur die Transaktionscommite vorgenommen. Eine Transaktion kann den Speicher die Änderungen übernehmen lassen, wenn das lokale Transaktion ein Commit ausgeführt wird, oder wenn die Transaktion der obersten Ebene übernommen werden. Platzgeschäfte werden in einer Transaktion der obersten Ebene geschachtelt. Eine geschachtelte Transaktion muss sich bestätigen oder zurücksetzen, bevor die nächste Transaktion der obersten Ebene bestätigen oder selbst zurücksetzen kann. Weitere Informationen finden Sie im Beispiel für die TransactionDepth-Eigenschaft.
Eine Transaktion wird auch die Aktionen nachverfolgt, die aufgetreten sind. Dies ermöglicht eine Gruppe Aktionen, mit der UndoManager-Eigenschaft in einem späteren Phase rückgängig gemacht zu werden oder wiederholt werden.
Eine Transaktion dürfen freigegeben werden. Dies kann erfolgen, indem die Dispose-Methode oder die Transaktion in einem Konstrukt Using erstellt. Wenn die Transaktion weitergegeben wurde, wenn sie veröffentlicht wird, wird die Transaktion automatisch zurückgesetzt und alle Änderungen werden abgebrochen.
Beispiele
Im folgenden Beispiel wird eine Transaktion, die die Speicher- ändert. Die Transaktion wird ein Commit ausgeführt. Wenn die Transaktion zurückgesetzt wird, gehen alle Änderungen am Speicher abgebrochen. Die Transaktion wird automatisch am Ende des using-Blocks 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 Beispiele und weitere Informationen 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.