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.
有人能向我解释一下这是怎么发生的吗?
提前感谢:-)
我知道这里发生了什么。真正的原因涉及一些附加条件:1.代码被混淆。2.当部署新代码(更新)并且旧会话仍在使用时,会发生错误。
每次代码被混淆时,字段和属性都会得到随机的模糊名称。因此,当反序列化sessionstate时,它们的值为null。