2017-01-27 2 views
0

요약 코드 흐름을 설명하고 싶습니다.독립 변수를 선언하는 방법은 무엇입니까?

내가 Session["MainRule"]하고 난이 메소드를 호출 내가 Session["temprule"]temprule를 넣어이 =>

var temprule=get_temp_rule_byid(Session["MainRule"],id); 

에서 항목을 선택하세요.

Session["temprule"]을 업데이트 할 때 메인 세션 Session["MainRule"]을 업데이트하고 싶지 않기 때문에.

하지만 Session["temprule"].에서 업데이트를 수행 할 때 Session["MainRule"] 값이 자동으로 변경됩니까?

var temprule= RulesRepository.get_temp_rule_byid(Session["MainRule"], id); 


public static RuleViewModel get_temp_rule_byid(object rulesFromSession, string id) 
     { 
      RuleViewModel ruleViewModel = null; 
      var temp = rulesFromSession as Dictionary<string, RuleViewModel>; 
      if (temp?.TryGetValue(id, out ruleViewModel) == true) 
      { 
       return ruleViewModel; 
      } 

      return null; 
     } 
+0

'get_temp_rule_byid'에 대한 코드를 표시하십시오. – HimBromBeere

+0

다른 세션 변수가 변경되면 코드가 변경 되었기 때문입니다. 코드를 게시하십시오. –

+0

'Session'을 다른 사전으로 바꾸고 유닛 테스트를 해보면 같은 행동을 보게 될 것이라고 생각합니다. –

답변

2

이 세션에서 값 같은데 업데이트 참조 유형입니다. Session object changes when object is updated in C#

값을 변경하지 않으려면 세션에 넣기 전에 값을 복제하십시오.

+0

, 자세히 설명해 주시겠습니까? – Jze

+0

설명하는 다른 질문의 링크를 붙여 넣었습니다. http://stackoverflow.com/questions/17484059/session-object-changes-when-object-is-updated-in-c-sharp – Vijay

관련 문제