Sql会话状态:某些字段变为null

本文关键字:null 字段 会话状态 Sql | 更新日期: 2023-09-27 18:27:57

我有一个要放入会话的类:

[Serializable]
public class Model
{
    private readonly List<Uri> uris;
    public Model()
    {
        uris = new List<Uri>();
    }

    public IEnumerable<Uri> Uris { get { return uris; } }
}

这个类的一个实例和一些字符串被添加到会话中。使用了Sql SessionState。

我的问题是有时当我从会话中获取Model对象时,uris字段为null。请注意,所有其他基元类型的会话项仍然是正确的。我使用的是ASP.NET 4.0 btw.

有人能向我解释一下这是怎么发生的吗?

提前感谢:-)

Sql会话状态:某些字段变为null

我知道这里发生了什么。真正的原因涉及一些附加条件:1.代码被混淆。2.当部署新代码(更新)并且旧会话仍在使用时,会发生错误。

每次代码被混淆时,字段和属性都会得到随机的模糊名称。因此,当反序列化sessionstate时,它们的值为null。