Trong ứng dụng web của tôi, tôi đang sử dụng System.Web.HttpContext.Current
và nó đại diện cho bối cảnh nhấn hiện tại, tôi đã tự hỏi làm thế nào nó có thể truy cập từ khắp mọi nơi cho đến khi tôi nhận thấy rằng một thành viên static
của nó! Trong khi một thành viên tĩnh của nó như thế nào nó giữ giá trị của nó trong khi nếu hai yêu cầu nhận được trong gần như cùng một lúc. như sau:System.Web.HttpContext.Current là tĩnh giữa các yêu cầu
#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
tôi đã bỏ lỡ hiểu một cái gì đó hoặc có một trick trong nó hoặc những gì?
Thưa bạn, Cảm ơn rất nhiều câu trả lời của bạn! mọi thứ bây giờ rõ ràng hơn nhiều, nhưng tôi có một câu hỏi, ý của bạn là gì với 'nó được thực hiện bằng cách sử dụng LogicalCallContext', và cảm ơn một lần nữa cho câu trả lời rất hữu ích của bạn. – Hilmi
Khi bạn mở thuộc tính mở với Reflector bạn thấy rằng giá trị không đến từ một trường tĩnh-local tĩnh nhưng từ CallContext và lần lượt từ LogicalCallContext. Họ là những tầng lớp hạ tầng cấp thấp mà tôi biết rất ít. Chúng chủ yếu là cấu trúc dữ liệu trên mỗi luồng (nhưng không hoàn toàn). Tôi nghĩ rằng mỗi yêu cầu trong ASP.NET hoặc WCF có một bối cảnh cuộc gọi như vậy nhưng tôi có thể sai về điều đó. – usr
cảm ơn rất nhiều Ngài, tôi sẽ tìm hiểu thêm về chủ đề này, nhưng câu trả lời của bạn đã hoàn tất! cảm ơn một lần nữa. – Hilmi