2013-01-04 21 views
33

私はいつもTransactionScopeを使用しようとしていますが、私は人々がそれについて何が有用かを理解できません。だから、最も基本的な質問をTransactionScopeの使い方は?

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

:それでは、例を見てみましょうどのように私は「CallAMethodThatDoesSomeWork1()」ように、それはのは言わせた場合に戻すアクションをロールバックする方法を知っている「CallAMethodThatDoesSomeWork2()」例外をスロー書くのですか?

+2

はい、それは基本的な質問です。 –

+3

重複したhttp://stackoverflow.com/questions/5265841/how-to-create-a-class-that-works-with-トランザクションスコープ?rq = 1? – Fabske

+1

@Fabske - そこには答えはありません – Denis

答えて

20

呼び出すメソッド内のコードは、トランザクションを認識し、アクティブなトランザクションに参加する必要があります。これは、リソースマネージャであるクラスを作成または使用することを意味します(Implement Your Own Resource Manager

IEnlistmentNotificationを実装してトランザクションに参加させると、トランザクションが完了すると、トランザクションマネージャはそのインターフェイスで定義されているメソッドを呼び出し、コードは作業を実行/取り消すことができます

+0

ああ、私はそれを行う方法を参照してください。 "TransactionScope"のMSDNページでそれを見て、TransactionScopeのポイントを完全に見たことはないと言いました。これは魔法のインターフェイスですそれを機能させる。意味あり! – Denis

関連する問題