TransactionScope真正做了什么

Leo*_*rdo 10 c# transactions transactionscope distributed-transactions

调查一下,我验证了例如在下面的场景中没有回滚值"myInt"

int myInt = 10;
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
    myInt=20;
    Transaction t = Transaction.Current;

    t.Rollback();
}
Run Code Online (Sandbox Code Playgroud)

所以它让我想到"TransactionScope是否只回滚与数据库相关的活动?或者事务可以管理其他事情,我不知道那些?"

小智 19

当前事务仅影响特定对象,称为资源管理器.这些对象必须实现特定的接口才能参与事务.ADO.NET SqlConnection对象就是一个例子.创建一个充当"事务性内存"的对象并不困难.这些对象称为挥发性资源管理器.这里有一个简单的例子.