【问题标题】:session: going from InProc to SQL session会话:从 InProc 到 SQL 会话
【发布时间】:2011-08-30 05:59:19
【问题描述】:

我正在从 InProc 会话切换到 SQL 服务器会话。目前,我的会话对象如下所示:

public class UserSession{

  public string TheStrings {get;set;}
  public int TheInts {get;set;}

  public List<MyObjectModel> ListOfObjects {get;set;}

}

它基本上包含字符串、整数和几个对象列表。我所做的是将这个对象存储在会话中,然后当我需要访问会话时,我可以编写 UserSession.TheStrings。

现在我正在将其转换为 SQL 会话,序列化开始发挥作用。是否只需要将 [serializable] 属性添加到整个类,还是还需要将其添加到所有 MyObjectModels 的类定义中?

谢谢。

【问题讨论】:

    标签: asp.net session


    【解决方案1】:

    我很确定它会默认序列化,只要您的对象中的所有内容都是简单类型。

    SerializableAttribute Class

    将 SerializableAttribute 属性应用于类型以表明 这种类型的实例可以被序列化。公共语言运行时 如果对象图中有任何类型,则抛出 SerializationException 被序列化没有 SerializableAttribute 属性 已申请。

    即使类也应用 SerializableAttribute 属性 实现 ISerializable 接口来控制序列化 过程。

    一个类型中所有由 SerializableAttribute 默认是序列化的,除非类型 实现 ISerializable 接口以覆盖序列化 过程。默认序列化过程不包括以下字段 用 NonSerializedAttribute 属性标记。如果一个字段 可序列化类型包含指针、句柄或其他一些数据 特定于特定环境的结构,不能被 在不同的环境中有意义地重组,那么你可能 想要将 NonSerializedAttribute 属性应用于该字段。

    【讨论】:

      猜你喜欢
      • 2017-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 2017-04-27
      • 2010-09-20
      相关资源
      最近更新 更多