Я не ищу способ связать значения с потоком, используя метод 'SetData'.
Мне нужно хранить какие-то данные, которые будут существовать только во время вызова метода, это может быть непосредственный родитель или любой другой вызов, который выполняется в стеке.
Например:
void SomeMethod()
{
string someInfo = "someInfo";
SomeOtherMethod();
object data = GetDataOnCurrentScope("someKey");
}
void SomeOtherMethod()
{
SetDataOnParentScope("someKey", somevalue);
}
В этом случае и локальная переменная someInfo, и набор данных с ключом someKey исчезнут после возврата SomeMethod. Возможно ли что-то подобное? Это может идти вразрез с правилами стека, но кто знает, есть ли у кого-то идея ...
obs: В настоящее время я предполагаю, что единственный способ - заставить компилятор объявить ссылку на словарь в начале стека вызовов каждого метода. Этот словарь будет иметь право на сборку мусора, когда метод вернется.