【问题标题】:How to use TransactionScope properly?如何正确使用 TransactionScope?
【发布时间】:2013-01-04 16:19:05
【问题描述】:

我一直想尝试使用TransactionScope,但我就是不知道人们看到了什么有用的东西。所以我们举个例子:

using(TransactionScope tran = new TransactionScope()) {
    CallAMethodThatDoesSomeWork1();
    CallAMethodThatDoesSomeWork2();
    tran.Complete();
}

所以最基本的问题是:我如何编写“CallAMethodThatDoesSomeWork1()”以便它知道如果假设“CallAMethodThatDoesSomeWork2()”抛出异常,它如何回滚其操作?

【问题讨论】:

    标签: c# .net vb.net transactionscope


    【解决方案1】:

    您调用的方法中的代码需要了解事务并参与活动事务。这意味着创建或使用作为资源管理器的类(请参阅Implement Your Own Resource Manager

    您可以通过实现IEnlistmentNotification 并参与交易来做到这一点。事务完成后,事务管理器将调用该接口上定义的方法,以便您的代码可以执行/撤消工作。

    【讨论】:

    • 哦,我知道该怎么做了。希望“TransactionScope”的 MSDN 页面说 - 一直在看它,但完全没有看到 TransactionScope 的意义。这是使它工作的神奇界面。这是有道理的!
    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多