Есть ли способ имитировать ThreadStatic для использования с HttpContext.Current.Items? - PullRequest
2 голосов
/ 25 мая 2011

Из-за Thread Agility в ASP.Net, ThreadStatic не подходит для использования в веб-приложениях для разделения доступа статического свойства от одного запроса к следующему.

InЧтобы избежать большого количества вызовов к HttpContext.Current.Items и связанных с ним проверок нуля и т. д., существует ли какая-либо хитрость, предлагаемая платформой .Net, посредством которой я мог бы создать атрибут, который работает вроде ThreadStatic, но использует HttpContext.Current.Items, еслитекущий код выполняется в контексте запроса ASP.Net?

примечание: я знаю, что ThreadStaticAttribute является особым случаем без внутреннего функционального кода и проверяется компилятором JIT перед любым изего магия работает.

1 Ответ

2 голосов
/ 25 мая 2011

В проекте n2cms имеется класс AdaptiveContext , на который вы можете взглянуть.Я знаю, что был какой-то разговор о том, чтобы сделать что-то подобное в log4net, но я не уверен, что это было завершено.

Хотя, насколько я могу судить, ничего не встроено в структуру.

...