В моем веб-приложении я использую System.Web.HttpContext.Current
, и он представляет текущий контекст, мне было интересно, как он доступен извне, пока я не заметил, что его член static
! Пока его статический член, как он сохраняет свое значение, а если два запроса получены почти в одно и то же время. как следующее:System.Web.HttpContext.Current статичен между запросами
#Req1----> | set the value of the static field to req1
#Req2----> | set the value of the static field to req2
#Req1 | use that static its supposed to be req2 while its req1
я пропустил-то понять или есть трюк в нем или что?
Сэр, Большое спасибо за ваш ответ! теперь все гораздо яснее, но у меня есть один вопрос: что вы подразумеваете под его внедрением с использованием LogicalCallContext? и еще раз спасибо за ваш очень полезный ответ. – Hilmi
Когда вы открываете свойство с помощью Reflector, вы обнаружите, что это значение получается не из статического потока-локального поля, а из CallContext и, в свою очередь, из LogicalCallContext. Это низкоуровневые классы инфраструктуры, о которых я мало что знаю. Они по существу являются потоковыми данными-структурами (но не совсем). Я думаю, что каждый запрос в ASP.NET или WCF имеет один такой контекст вызова, но я могу ошибаться в этом. – usr
большое спасибо, сэр, я буду искать больше об этом предмете, но ваш ответ был окончен! еще раз спасибо. – Hilmi