Comment utiliser TransactionScope correctement?
Je veux toujours essayer d'utiliser TransactionScope
mais je n'arrive pas à comprendre ce que les gens voient à ce sujet qui est utile. Donc, nous allons prendre un exemple:
using(TransactionScope tran = new TransactionScope()) {
CallAMethodThatDoesSomeWork1();
CallAMethodThatDoesSomeWork2();
tran.Complete();
}
Donc la question la plus fondamentale: Comment puis-je écrire "CallAMethodThatDoesSomeWork1()
" pour qu'il sache comment déployer ses actions de retour si disons "CallAMethodThatDoesSomeWork2()
" déclenche une exception?
Vous devez vous connecter pour publier un commentaire.
Le code dans les méthodes que vous appelez besoin d'être au courant de la transaction et de les inscrire dans la transaction active. Cela signifie la création ou à l'aide de classes qui sont les gestionnaires des ressources (voir Mettre En Place Votre Propre Gestionnaire De Ressources.
Vous faites cela par la mise en œuvre de IEnlistmentNotification et à l'enrôlement dans la transaction. Lorsque la transaction est terminée, le gestionnaire de transactions fera appel à des méthodes telles que définies sur cette interface, de sorte que votre code peut faire/défaire le travail.