2012-09-16 2 views
1

페이지 전체에서 사용하기 위해 HttpRequest의 Context.Items 속성에 내 User 클래스를 저장합니다.Context.Items vs 로컬 변수?

리피터를 사용하는 경우 이것을 여러 번 참조해야합니다. 어쩌면 10 번을 참조해야합니다.

context.items에서 검색하는 것이 비쌉니까? 예를 들어 내가 가져 와서 로컬 변수로 저장해야합니까, 아니면 여러 번 직접 액세스 할 수 있습니까?

답변

1

로컬 변수를 사용할 수 있으면 로컬 변수를 사용하십시오. 오버 헤드를 줄여 줄뿐만 아니라 코드를 더 짧고 읽기 쉽도록 만듭니다 ("마법 문자열"없음).

는 동안 IHttpModule 인터페이스와 IHttpHandler를 인터페이스 사이의 공유 데이터를 구성하고 사용할 수있는 키/값 컬렉션을 가져옵니다 :

Context.Items는 당신 로컬 변수를 사용할 수없는 상황을 위해 설계되었습니다 HTTP 요청.

따라서, 같은 Page 개체에 액세스 할 수없는 동일한 요청을 처리하지만, 두 개체 사이에 정보를 전송하는 Context.Items을 사용합니다. 구체적인 예는 다음과 같습니다 Server.Transfer 두 페이지 사이

  • 전달 데이터입니다.
  • Application_BeginRequest과 페이지 사이에 데이터를 전달 중입니다.
  • 사용자 지정 IHttpModule (예 : 사용자 지정 인증 처리기)과 페이지간에 데이터를 전달합니다.
+0

내가 사용하는 방법. global.asax를 통해 생성 된 다음 마스터 페이지 및 페이지에서 다시 사용됩니다. – dotnetnoob