存储在会话中的对象会被无意中修改

时间:2017-01-17 18:19:58

标签: c# asp.net session

我正在开发一个asp.net webforms项目。我有两个xml文档 - 一个是包含所有节点的XML,但没有填充任何属性。我使用它来显示处于空状态的Telerik树视图控件。然后我使用属性值填充此xml,这些属性值对应于树视图中的已检查节点。两种类型的xml都在数据层中创建。当页面加载时,我创建了空白的xml。我想把它保存在会话中。后来,我想从会话中检索空白的xml并将其发送到数据层以填充属性。代码如下。虽然我从未在会话中填充xml属性,但是当执行以下代码的最后一行时,会话中的xml也会被修改。可能是因为我使用相同的名称datesXml。不知道如何解决它。

 var datesXml = new XmlDocument();
    if (HttpContext.Current.Session["BLANK_XML"] != null)
    {
        datesXml = (XmlDocument)HttpContext.Current.Session["BLANK_XML"];
    }
    else if (HttpContext.Current.Session["BLANK_XML"] == null)
    {
        datesXml = dataLayer.GetBlankXML(queryData);
        HttpContext.Current.Session.Add("BLANK_XML", datesXml);
    }
    if (!blankDocument)
    {
        datesXml = dataLayer.GetDataXML(queryData, datesXml);
    }

0 个答案:

没有答案