2010-07-20 3 views
0

세션에서 개체를 참조하는 방법, 업데이트 방법 및 복사 방법에 대해 혼란스러워합니다.어떻게 세션을 업데이트하지 않고 업데이트하려면 세션의 복사본을 만들 수 있습니까?

만들면 MyObject obj = new Object();
다음 세션 [ "object"] = obj;

MyObject temp = (MyObject)Session["object"]; 

임시 변수를 변경하면 세션의 개체가 업데이트됩니까?

세션 [ "object"] = temp 의 변경 사항을 따라야합니까?

고맙습니다.

답변

0

temp 변수를 세션에 다시 저장할 필요가 없습니다. Session["object"]temp 변수가 모두 동일한 객체를 가리키고 있으므로 temp에서 수정하면 세션에서도 수정됩니다.

2

MyObject이 참조 유형 (클래스)이고 가변적 인 경우 (즉, 상태를 변경하는 메소드가있는 경우) 매번 세션을 재 할당 할 필요가 없습니다.

MyObject이 (String과 같은) 변경 불가능한 클래스 인 경우 값 유형 (struct) 인 경우 변경 할 때마다이를 세션에 다시 지정해야합니다.

관련 문제