2011-04-28 1 views
2

.aspx 페이지의 코드 숨김 개체를 만드는 경우 해당 개체를 얼마나 오래 사용할 수 있습니까? 포스트 - 백 (back-backs)에 걸쳐 살 것인가? 어떻게 든 다른 페이지로 전달할 수 있습니까? 세션 객체만큼 오래 살 수 있을까요?CodeBehind의 오브젝트는 얼마나 오래 존재합니까?

필자는 코드 숨김으로 생성 된 개체의 수명주기를 설명하고이 수명주기와 상호 작용하는 방법을 설명하는 문서를 찾기 위해 웹을 검색했습니다. 모든 관련 링크가 인정 될 것입니다.

그런데 코드 숨김에서 C#을 사용하고 있지만 VB를 대상으로하는 대부분의 조언이 적용될 수 있다고 상상합니다. 내가 .aspx 페이지의 코드 숨김에서 객체를 생성하는 경우

답변

3

코드 숨김은 요청이 지속되는 동안 유지됩니다. 그것은 post-backs를 가로 질러 살지 않을 것이다. 포스트 백을 통해 값을 원할 경우 Session에 값을 추가 할 수 있습니다. 같은 것이 VB에 적용됩니다.

5

얼마나 는 그 개체가 살고 기대할 수 있을까? 게시판에 게시됩니까? 다른 페이지로 어떻게 든 전달할 수 있습니까? 세션 객체만큼 오래 살 수 있습니까?

당신은 세션 내에서 객체의 인스턴스를 저장할 수 있습니다

MyFoo foo = (MyFoo) Session["Foo"]; 

이에 대한 대안은

을 사용하고 있습니다 :

Session["Foo"] = new MyFoo(); 

당신은 세션에 액세스 할 수있는 모든 페이지에 인스턴스를 검색 할 수 있습니다 a static 변수 -이 경우 변수는 앱 도메인이 파괴 될 때까지 (즉 IIS가 다시 시작될 때까지) 값을 유지하지만 모든 사용자에 대해 동일한 값을가집니다 (즉, 세션과 전혀 관련이 없음).

+0

AppDomains는 IIS를 다시 시작하지 않고 여러 가지 이유로 재활용 할 수 있습니다. 또한 개체를 ViewState에 저장할 수도 있습니다. 그러면 세션 휴식 후에도 유지됩니다 (페이지 전체가 아닌). – R0MANARMY

5

개체는 페이지와 동일한 기간, 즉 페이지 요청 기간 동안 만 유효합니다. 더 오래 살도록하려면 세션에 저장하고 각 요청에 대해 검색 할 수 있습니다.