「SetData」メソッドを使用して値をスレッドに関連付ける方法を探しているわけではありません。
呼び出し元のメソッドのスコープ中にのみ存在するある種のデータを保存する必要があります。これは、直接の親またはスタックで行われる他の呼び出しである可能性があります。例えば:
void SomeMethod()
{
string someInfo = "someInfo";
SomeOtherMethod();
object data = GetDataOnCurrentScope("someKey");
}
void SomeOtherMethod()
{
SetDataOnParentScope("someKey", somevalue);
}
この場合、「someInfo」ローカル変数と「someKey」キーを持つデータセットの両方が、「SomeMethod」が戻った後に消えます。このようなことは可能ですか?これはスタックのルールに反するかもしれませんが、誰かがアイデアを持っているかどうかは誰にもわかりません...
obs: 現在、唯一の方法は、すべてのメソッドのコール スタックの先頭で、コンパイラに辞書への参照を宣言させることだと思います。そのディクショナリは、メソッドが返されたときにガベージ コレクションの対象になります。