ในเว็บแอปพลิเคชันของฉันฉันทำสิ่งนี้เพื่ออ่านตัวแปรเซสชัน:
if (HttpContext.Current.Session != null && HttpContext.Current.Session["MyVariable"] != null)
{
string myVariable= (string)HttpContext.Current.Session["MyVariable"];
}
ฉันเข้าใจว่าเหตุใดจึงสำคัญที่ต้องตรวจสอบว่าเหตุใด HttpContext.Current.Session ["MyVariable"] จึงเป็นโมฆะ (ตัวแปรอาจยังไม่ได้รับการจัดเก็บใน Session หรือมีการรีเซ็ต Session ด้วยเหตุผลหลายประการ) แต่เหตุใดฉันจึงต้องตรวจสอบ ถ้าHttpContext.Current.Session
เป็นโมฆะ?
ความเข้าใจของฉันคือเซสชันถูกสร้างขึ้นโดยอัตโนมัติโดย ASP.NET ดังนั้น HttpContext.Current.Session ไม่ควรเป็นโมฆะ สมมติฐานนี้ถูกต้องหรือไม่? ถ้ามันเป็นโมฆะได้หมายความว่าฉันควรตรวจสอบก่อนที่จะเก็บบางอย่างไว้ในนั้นหรือไม่:
if (HttpContext.Current.Session != null)
{
HttpContext.Current.Session["MyVariable"]="Test";
}
else
{
// What should be done in this case (if session is null)?
// Is it possible to force the session to be created if it doesn't exist?
}