TransactionScopeはどのように機能しますか? 質問する

TransactionScopeはどのように機能しますか? 質問する

Method1()が をインスタンス化し、それが も をインスタンス化する をTransactionScope呼び出す場合、.NET はどのようにして両方が同じスコープ内にあることを認識するのでしょうか? 内部的には静的メソッドを使用しないと思います。そうしないと、ASP.NET のようなマルチスレッド アプリケーションではうまく動作しません。Method2()TransactionScope

独自の TransactionScope のようなクラスを作成することは可能ですか? それとも、元のクラスでは、Microsoft だけが動作方法を知っている特殊な機能が使用されていますか?

ベストアンサー1

お役に立てれば:

http://msdn.microsoft.com/en-us/magazine/cc300805.aspx

TransactionScope についてよく知らない方のために説明すると、これは Microsoft® .NE​​T Framework 2.0 に新しく追加された System.Transactions 名前空間の一部です。System.Transactions は、ADO.NET に限らず、.NET Framework に完全に統合されたトランザクション フレームワークを提供します。Transaction クラスと TransactionScope クラスは、この名前空間で最も重要な 2 つのクラスです。質問が示唆しているように、TransactionScope インスタンスを作成すると、その TransactionScope のスコープ内で実行される ADO.NET 操作が自動的に登録されます (Transaction.Current 静的プロパティを使用して現在の Transaction にアクセスすることもできます)。

using(TransactionScope scope = new TransactionScope())
{
    ... // all operations here part of a transaction
    scope.Complete();
}

おすすめ記事