2012-03-15 16 views
2

transactionscopeと同じように動作するスコープオブジェクトを作成したいと思います。C#関数スコープを作成する

public void MyOperation() 
{ 
using(Scope s = new Scope()) 
{ 

Function1(); 
Function2(); 


} 
} 

機能1と機能2は、スコープ内であり、彼らはスコープ変数についてevertyhing知ることができ、それはまた、スコープのユニークなIDを生成することができます。

これはtransactionscopeとまったく同じですが、SQLロックを取得したくありません。それはIIS

で実行されているので、静的変数は解決策ではないことを

注意誰かがその上で私を助けることができますか?

+0

私は[その悪魔のバージョン](https://gist.github.com/2037478)を書きました。 – SLaks

答えて

2

[ThreadStatic]静的フィールドを使用する必要があります。
ASP.Netで動作しているの場合は、おそらくHttpContext.Current.Itemsを使用してください。

+0

悲しいことに、iis上で動作するcomオブジェクトです。 IISはスレッドを再利用するため、Threadstaticは使用できません。 –

+0

@KennethLam:ハァッか。 'Dispose()'の '[ThreadStatic]'フィールドをクリアするだけです。それは正常に動作します。 – SLaks

関連する問題