Dot-Net
TransactionScope 是如何工作的?
當
Method1()實例化 aTransactionScope並呼叫Method2()也實例化 aTransactionScope時,.NET 如何知道兩者在同一範圍內?我相信它不會在內部使用靜態方法,否則它不會在 ASP.NET 等多執行緒應用程序上執行良好。是否可以創建我自己的類似 TransactionScope 的類,或者原始類是否使用了 Microsoft 知道它們如何工作的特殊功能?
希望這可以幫助:
<http://msdn.microsoft.com/en-us/magazine/cc300805.aspx>
對於那些不熟悉 TransactionScope 的人,它是 Microsoft® .NET Framework 2.0 新增的 System.Transactions 命名空間的一部分。System.Transactions 提供了一個完全集成到 .NET Framework 中的事務框架,包括但不限於 ADO.NET。Transaction 和 TransactionScope 類是這個命名空間中最重要的兩個類。正如問題所暗示的,您可以創建一個 TransactionScope 實例,並且在該 TransactionScope 範圍內執行的 ADO.NET 操作將自動登記(您也可以通過 Transaction.Current 靜態屬性訪問目前 Transaction):
using(TransactionScope scope = new TransactionScope()) { ... // all operations here part of a transaction scope.Complete(); }