Transaction, classe
Transaction qui garantit que les modifications apportées au magasin sont traitées en tant que groupe qui peut être validé ou restauré.
Hiérarchie d'héritage
System.Object
System.MarshalByRefObject
Microsoft.VisualStudio.Modeling.Transaction
Espace de noms : Microsoft.VisualStudio.Modeling
Assembly : Microsoft.VisualStudio.Modeling.Sdk.12.0 (dans Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)
Syntaxe
'Déclaration
Public Class Transaction _
Inherits MarshalByRefObject _
Implements IDisposable
public class Transaction : MarshalByRefObject,
IDisposable
Le type Transaction expose les membres suivants.
Propriétés
Nom | Description | |
---|---|---|
Context | Obtient la transaction et permet aux clients d'ajouter des données utilisateur à la transaction. | |
ContextInstance | Obtient le Context de cette transaction. | |
ForceAllRulesToCommitTime | Obtient ou définit un indicateur qui force toutes les règles imbriquées à se produire au moment du LocalCommit pour la transaction en cours. | |
HasPendingChanges | Obtient la transaction et vérifie si des modifications ont été apportées au magasin pendant cette transaction. | |
HaveCommitTimeRulesFired | Indique si les règles de délai de validation ont été données ou non | |
Id | Obtient l'ID de cette transaction. | |
InRollback | Obtient la transaction et vérifie si cette transaction est en cours de restauration. | |
IsActive | Obtient la transaction et vérifie si cette transaction est en cours de traitement. | |
IsHidden | Obtient la transaction et vérifie si la transaction est masquée. | |
IsNested | Obtient la transaction et vérifie si une transaction est imbriquée dans une autre transaction. | |
IsSerializing | Obtient la transaction et vérifie si la transaction est actuellement en cours de sérialisation. | |
Name | Obtient ou définit le nom de la transaction. | |
Parent | Obtient la transaction de niveau supérieur assignée à la transaction imbriquée. | |
PartitionStates | Obtient des informations sur l'état de toutes les partitions dans le magasin. | |
SequenceNumber | Obtient le numéro de séquence de la transaction. | |
Store | Obtient le magasin auquel la transaction appartient. | |
TopLevelTransaction | Obtient la transaction de niveau supérieur de la hiérarchie de transaction. | |
TransactionDepth | Obtient le nombre total de transactions dans lesquelles cette transaction est imbriquée. |
Début
Méthodes
Nom | Description | |
---|---|---|
Commit | Valide la transaction. | |
CreateObjRef | Essentiel pour la sécurité. Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant. (Hérité de MarshalByRefObject.) | |
Dispose | Supprime l'état de la transaction. | |
Equals | Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.) | |
Finalize | Finalise la transaction. (Substitue Object.Finalize().) | |
GetHashCode | Sert de fonction de hachage par défaut. (Hérité de Object.) | |
GetLifetimeService | Essentiel pour la sécurité. Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
InitializeLifetimeService | Essentiel pour la sécurité. Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject.) | |
MemberwiseClone() | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
MemberwiseClone(Boolean) | Crée une copie superficielle de l'objet MarshalByRefObject actuel. (Hérité de MarshalByRefObject.) | |
Rollback | Le magasin sera rétabli à l'état dans lequel il était lors de la création de la transaction. | |
ToString | Retourne une chaîne qui représente l'objet actif. (Hérité de Object.) |
Début
Méthodes d'extension
Nom | Description | |
---|---|---|
GetSerializationContext | Obtient le SerializationContext actif dans le contexte de la transaction spécifiée.Le SerializationContext est stocké dans le TransactionContext des transactions de sérialisation.Si la transaction est imbriquée, la pile de transaction est recherchée pour trouver la transaction de sérialisation englobante la plus proche d'un SerializationContext. (Défini par SerializationContextTransactionExtensions.) |
Début
Notes
Une transaction vous permet de regrouper plusieurs modifications. Elle contient également les actions exécutées dans une transaction afin qu'ils puissent être annulées par la suite.
Les modifications au magasin doivent être effectuées dans une transaction. Les modifications au magasin sont apportées uniquement si les preuves de transaction. Une transaction peut faire accepter magasin les modifications lorsque la transaction locale est validée ou lorsque la transaction de niveau supérieur est validée. Les transactions locales sont imbriquées dans une transaction de niveau supérieur. Une transaction imbriquée doit valider ou annuler avant que la transaction de niveau supérieur suivante peut valider ou annuler. Pour plus d'informations, consultez l'exemple de la propriété d'TransactionDepth.
Une transaction contient également les actions qui se sont produites. Cela permet un groupe d'actions d'annuler ultérieurement ou rétablit avec la propriété d'UndoManager.
Une transaction doit être supprimée. Cette opération peut être effectuée à l'aide de la méthode Dispose ou en créant la transaction en construction d'Using. Si la transaction n'a pas été validée lorsqu'elle est supprimée, la transaction est alors automatiquement restaurée et toutes les modifications sont annulées.
Exemples
L'exemple suivant montre une transaction qui modifie le magasin. La transaction est validée. Si la transaction est restaurée, toutes les modifications au magasin sont annulées. La transaction est supprimée automatiquement à la fin du bloc d'using.
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();
}
Pour obtenir des exemples et des informations, consultez Using Transactions.
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.