Den*_*nis 34 .net c# vb.net transactionscope
我总是想尝试使用,TransactionScope但我无法弄清楚人们对它的看法是否有用.让我们举一个例子:
using(TransactionScope tran = new TransactionScope()) {
CallAMethodThatDoesSomeWork1();
CallAMethodThatDoesSomeWork2();
tran.Complete();
}
Run Code Online (Sandbox Code Playgroud)
所以最基本的问题是:我如何编写" CallAMethodThatDoesSomeWork1()"以便它知道如果让我们说" CallAMethodThatDoesSomeWork2()"抛出异常会如何推回其行为?
Tre*_*ley 22
您调用的方法中的代码需要知道事务并在活动事务中登记.这意味着创建或使用作为资源管理器的类(请参阅实现您自己的资源管理器.
您可以通过实施IEnlistmentNotification并在事务中登记来实现此目的.事务完成后,事务管理器将调用该接口上定义的方法,以便您的代码可以执行/撤消工作.