ASP.NET에 호환되지 않는 두 개의 세션 상태 유형이 있는 이유는 무엇입니까?
ASP.NET MVC에서 세션 데이터로 작업하는 두 가지 방법이 보입니다.
System.Web.SessionState.HttpSessionState
에서 이용할 수 있는.HttpApplication
System.Web.HttpSessionStateBase
에서 이용할 수 있는.Controller
하나에 저장된 데이터는 다른 하나에 저장된 데이터를 사용할 수 있는 것 같습니다.
불행하게도 이 두 가지 유형의 유일한 공통 조상은System.Object
즉, 둘 중 하나의 추상화를 위해 재사용 가능한 유틸리티 코드를 만들 수 없습니다.
API가 왜 이런 식입니까?제가 빠진 두 가지 사이에 중요한 차이점이 있습니까?
고전적인 HttpContext 객체 Request, Response, Session에 대한 ASP.NET MVC 추상화에 도입되었습니다.추상 클래스를 나타내며, 추상 클래스가 조롱당할 수 있기 때문에 기본 컨텍스트를 숨기고 단위 테스트를 단순화하기 위해 MVC 프레임워크 전체에 노출됩니다.
예를 들어 사용자가 가지고 있는 세션 개체 및 해당 개체의 구현입니다.
다음은 기존 ASP.NET 세션과 추상화 간에 변환하는 방법의 예입니다.
HttpSessionStateBase session = new HttpSessionStateWrapper(HttpContext.Current.Session);
그래서 그System.Web.SessionState.HttpSessionState
당신이 언급하고 있는 것은 고전적인 ASP.NET 1.0 이후로 존재했던 기본 세션 개체입니다.MVC에서 이 개체는 다음과 같이 포장됩니다.HttpSessionStateWrapper
그러나 ASP.NET MVC는 ASP.NET 응용 프로그램이기 때문에 기본 세션이 있는 Global.asax를 여전히 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/5447611/why-are-there-two-incompatible-session-state-types-in-asp-net
'programing' 카테고리의 다른 글
Asp.net core 2.0에서 log4net을 사용하는 방법 (0) | 2023.06.07 |
---|---|
봄 데이터 JPA의 항목 목록을 포함 쿼리를 사용하여 여러 열 검색 (0) | 2023.06.07 |
pl/sql 프로시저에서 변수를 선언할 때 구문 오류 발생 (0) | 2023.06.07 |
여러 매개 변수를 사용하여 Sub를 호출할 때 VBA에서 오류를 반환합니다. (0) | 2023.06.07 |
C에서 정의되었지만 사용되지 않은 기능 경고 (0) | 2023.06.07 |