Mengakses Pembolehubah Sesi ASP.NET Di Luar Halaman Web
Dalam ASP.NET, mengakses pembolehubah sesi terus dalam halaman web atau kawalan adalah mudah menggunakan Session["key"]
. Walau bagaimanapun, mengaksesnya daripada kelas luaran (seperti dalam folder App_Code
) memerlukan pendekatan yang berbeza.
Kaedah Akses Terus:
Cara paling langsung untuk mendapatkan semula nilai sesi daripada mana-mana kelas ialah menggunakan System.Web.HttpContext.Current.Session["key"]
. Ini memberikan akses kepada keadaan sesi tanpa mengira lokasi kelas. Contohnya, untuk mendapatkan pembolehubah sesi "loginId":
<code class="language-csharp">int loginId = (int)System.Web.HttpContext.Current.Session["loginId"];</code>
Pendekatan yang Diperbaiki: Kelas Pembalut Sesi
Untuk keselamatan jenis yang dipertingkatkan, kebolehselenggaraan dan kejelasan kod, kelas pembalut disyorkan. Ini memusatkan pengurusan kunci sesi, mengurangkan penghantaran jenis dan membenarkan pemulaan nilai lalai.
Ini contohnya:
<code class="language-csharp">public class SessionWrapper { private static SessionWrapper _instance; public static SessionWrapper Instance { get { return _instance ??= new SessionWrapper(); } } public string Property1 { get => (string)System.Web.HttpContext.Current.Session["Property1"] ?? ""; set => System.Web.HttpContext.Current.Session["Property1"] = value; } public int LoginId { get => (int?)System.Web.HttpContext.Current.Session["LoginId"] ?? 0; set => System.Web.HttpContext.Current.Session["LoginId"] = value; } }</code>
Kini, mengakses pembolehubah sesi menjadi lebih bersih:
<code class="language-csharp">int loginId = SessionWrapper.Instance.LoginId;</code>
Kaedah ini menawarkan pengendalian ralat yang lebih baik (menggunakan operator penggabungan nol ??
) dan mengelakkan kemungkinan pengecualian daripada ketidakpadanan jenis. Penggunaan sifat juga membolehkan untuk menetapkan nilai sesi serta mendapatkannya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Pembolehubah Sesi ASP.NET daripada Kelas Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!