如何声明独立变量?

时间:2017-01-27 09:22:19

标签: c# asp.net

我想解释一下我的摘要代码流程。

我有Session["MainRule"]并且我调用了一种方法来从此=>

中获取所选项目
var temprule=get_temp_rule_byid(Session["MainRule"],id);

我将此temprule添加到Session["temprule"]

因为我更新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;
        }

1 个答案:

答案 0 :(得分:2)

您的会话中的值看起来像是引用类型。 Session object changes when object is updated in C#

如果您不希望更改值,请在将值放入会话之前克隆该值。