当Method1()
实例化TransactionScope
并调用Method2()
(也实例化TransactionScope
)时,.NET如何知道两者在同一作用域中?
我相信它不会在内部使用静电方法,否则它在像ASP.Net这样的多线程应用程序上不会工作得很好.
是否可以创建我自己的类似TransactionScope的类,或者最初的类是否使用只有Microsoft才知道其工作原理的特殊功能?
当Method1()
实例化TransactionScope
并调用Method2()
(也实例化TransactionScope
)时,.NET如何知道两者在同一作用域中?
我相信它不会在内部使用静电方法,否则它在像ASP.Net这样的多线程应用程序上不会工作得很好.
是否可以创建我自己的类似TransactionScope的类,或者最初的类是否使用只有Microsoft才知道其工作原理的特殊功能?
希望这有助于:
http://msdn.microsoft.com/en-us/magazine/cc300805.aspx个
对于那些不熟悉TransactionScope的人来说,它是Microsoft®.NET Framework 2.0新增的System.Transaction命名空间的一部分.System.Transaction提供了一个完全集成到.NET Framework中的事务框架,包括但不限于ADO.NET.Transaction和TransactionScope类是此命名空间中最重要的两个类.正如该问题所暗示的,您可以创建一个TransactionScope实例,并且在该TransactionScope范围内执行的ADO.NET操作将自动登记(您也可以通过Transaction.Current静电属性访问当前事务):
using(TransactionScope scope = new TransactionScope()) { ... // all operations here part of a transaction scope.Complete(); }