웹 페이지 외부에서 ASP.NET 세션 변수에 액세스
ASP.NET에서는 Session["key"]
을 사용하여 웹 페이지나 컨트롤 내에서 세션 변수에 직접 액세스하는 것이 간단합니다. 그러나 App_Code
폴더에 있는 클래스와 같은 외부 클래스에서 액세스하려면 다른 접근 방식이 필요합니다.
직접 접속 방법:
모든 클래스에서 세션 값을 검색하는 가장 직접적인 방법은 System.Web.HttpContext.Current.Session["key"]
을 사용하는 것입니다. 이는 클래스 위치에 관계없이 세션 상태에 대한 액세스를 제공합니다. 예를 들어, "loginId" 세션 변수를 얻으려면:
<code class="language-csharp">int loginId = (int)System.Web.HttpContext.Current.Session["loginId"];</code>
향상된 접근 방식: 세션 래퍼 클래스
향상된 유형 안전성, 유지 관리성 및 코드 명확성을 위해 래퍼 클래스를 권장합니다. 이를 통해 세션 키 관리가 중앙 집중화되고 유형 캐스팅이 줄어들며 기본값 초기화가 가능해집니다.
예:
<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>
이제 세션 변수에 액세스하는 것이 더 깔끔해졌습니다.
<code class="language-csharp">int loginId = SessionWrapper.Instance.LoginId;</code>
이 방법은 더 나은 오류 처리를 제공하고(null 병합 연산자 ??
사용) 유형 불일치로 인한 잠재적인 예외를 방지합니다. 속성을 사용하면 세션 값을 설정하고 검색할 수도 있습니다.
위 내용은 외부 클래스에서 ASP.NET 세션 변수에 어떻게 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!