2009-08-20 2 views
1

세션에서 로컬 변수 집합을 수정할 때 내 세션 객체의 값이 변경된 것처럼 보입니다.asp.net - C# 세션 변수가 참조로 수정되는 중입니까?

설정 :

2.0

베이스 페이지 클래스 수준 변수에, 세션에서 복잡한 객체를 검색을 캐스트, 저장 .NET

. 하위 페이지는 클래스 수준 변수를 사용하여 일부 선택적 시나리오를 재생합니다. 사용자가 변경 사항을 유지하지 않기로 결정하면 세션 객체가 변수에서 업데이트되지 않지만 세션에서 값을 검색하면 저장되지 않은 변경 사항이 포함됩니다.

세션 개체를 보는 디버그 모드에서 로컬 개체가 동시에 변경됩니다.

감사합니다.

답변

1

세션에서 개체에 대한 참조를 반환하므로 이것이 어떻게 작동해야합니다. 다른 객체로 작업하려면 세션의 객체 복제본을 작업 대상으로 설정 한 다음 사용자가 변경 사항을 승인하기로 결정한 경우 해당 세션에 저장된 복제본을 복제본으로 대체해야합니다.

+0

이 변경 사항이 .net 1에서 2로 변경 되었습니까? 다음과 같은 경우 : myObj temp = 세션 [ "myStuff"] as myObj; temp.name = "test"; temp = 세션 [ "myStuff"]을 myObj로; 나는 거의 긍정적이었습니다. 저는 과거에이 변수를 사용하여 로컬 변수의 변경 사항을 재설정했습니다. –

관련 문제