Partager via


Transactions automatiques et classes .NET Framework

Des instances d'une classe .NET Framework peuvent participer à une transaction automatique dans la mesure où vous avez préparé la classe à cet effet. Chaque ressource faisant l'objet d'un accès par une instance de classe (ou par un objet) s'inscrit dans la transaction. Par exemple, si un objet utilise ADO.NET pour envoyer de l'argent sur un compte dans une base de données, le gestionnaire de ressources de la base de données détermine si l'objet s'exécute dans une transaction. Le cas échéant, il inscrit automatiquement la base de données dans la transaction.

Pour qu'un objet participe à une transaction, appliquez l'attribut TransactionAttribute à sa classe. Lorsque vous appliquez l'attribut de transaction, vous pouvez utiliser indifféremment Transaction, transaction, TransactionAttribute et transactionattribute.

La procédure permettant de préparer une classe en vue de sa participation à une transaction automatique est détaillée dans la rubrique sur la procédure d'utilisation des transactions automatiques dans une classe .NET Framework..

L'attribut de transaction utilise un constructeur qui prend une énumération TransactionOption comme paramètre. Le tableau ci-dessous répertorie les valeurs possibles de l'énumération TransactionOption.

Valeur de l'attribut Description

Disabled

Élimine le contrôle des transactions automatiques sur l'objet. Un objet auquel cette valeur d'attribut est appliquée peut se connecter directement au coordinateur de transactions distribuées (DTC, Distributed Transaction Coordinator) pour la prise en charge transactionnelle.

[Transaction(TransactionOption.Disabled)]

NotSupported

Indique que l'objet ne fonctionne pas dans le cadre de transactions. Lorsqu'une demande est traitée, son contexte d'objet est créé sans transaction, qu'une transaction soit active ou non.

[Transaction(TransactionOption.NotSupported)]

Supported

Indique que l'objet s'exécute dans le contexte d'une transaction existante, s'il en existe une. Si aucune transaction n'existe, l'objet s'exécute sans transaction.

[Transaction(TransactionOption.Supported)]

Required

(par défaut)

Indique que l'objet nécessite une transaction. Il s'exécute dans la portée d'une transaction existante, le cas échéant. S'il n'existe pas de transaction, l'objet en démarre une.

[Transaction(TransactionOption.Required)]

RequiresNew

Indique que l'objet exige une transaction et démarre une nouvelle transaction pour chaque demande.

[Transaction(TransactionOption.RequiresNew)]

Voir aussi

Tâches

Procédure d'utilisation des transactions automatiques dans une classe .NET Framework

Concepts

Vote dans une transaction automatique

Autres ressources

Écriture de composants de service

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.