Я звоню из одного куска моего кода через несколько уровней стороннего кода, и в какой-то момент этот вызов возвращается в мой код, вызывая некоторый код, который я написал.
Другими словами, цепочка кодовых вызовов выглядит следующим образом:
My code #1 --> 3rd party code --> My code #2
К сожалению, ничего, что я передаю стороннему коду, не дается этому второму коду, поэтому у меня нет ничего, чтобы связать первый и второй куски вместе, за исключением того факта, что код выполняется в одном потоке.
Так что мне было интересно, если бы просто использование [ThreadStatic]
для статического поля в классе было бы жизнеспособным решением этой проблемы?
Поскольку код также выполняется в веб-приложении, я не могу просто использовать для этого статическое поле, поскольку значение, к которому мне нужен доступ (объект), отличается для каждого пользователя / сеанса.
т. Я бы сделал что-то вроде этого:
internal static class DataHolder
{
[ThreadStatic]
internal static ClassName FieldName;
}
Есть ли другие способы решения этой проблемы?