会话状态模式为“StateServer”或“SQLServer”时,不允许使用无法序列化的对象或 MarshalByRef 对象。
网上说是在类实例化时加上[Serializable]
难道每个类都要加吗?
怎么解决
在线等哦

解决方案 »

  1.   

    为了保证不管使用什么样的会话模式都能够有效的保存会话状态,在每个定义类的前面加上了[Serializable]序列化。
      

  2.   

    如果是自定义类里面包含的不是基本类型的东西,你还要为类实现如下签名的构造函数(System.Runtime.Serialization.SerializationInfo si,  System.Runtime.Serialization.StreamingContext context)
    及如下方法
    System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, 
    System.Runtime.Serialization.StreamingContext context)
    对了,你的类要继承System.Runtime.Serialization.ISerializable
      

  3.   

    不好意思,还是没听懂
     tigerwen01(小虎)(编程艺术化) 
    你的意思是我所有的类的最前面读加上[Serializable]?mqmmx(传说中的肥羊)
    如果是自定义类里面包含的不是基本类型的东西
    什么意思?就是说我有自定义数据类型的类?
    (System.Runtime.Serialization.SerializationInfo si,  System.Runtime.Serialization.StreamingContext context)
    及如下方法
    System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, 
    System.Runtime.Serialization.StreamingContext context)
    这个加在哪里?
    不哈意思我恩菜,请再解答
      

  4.   

    怎么解决呢?
    我现在的问题是系统老是自动登出
    我怀疑是session的问题
    查了网上的资料,看到SessionState的Mode为InProc时可能出现这个问题,所以这样处理的
    但把Mode改成StateServer时出现了上述的错误
    改怎么解决呢?
    在每一个类里都添加[Serializable]?包括所有后端类吗?
    有没有其他解决方法
    先谢谢了
      

  5.   

    报错为
    SerializationException: 程序集 System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 中的类型 System.Xml.XmlBoundElement 未标记为可序列化。
    我怎么确定是哪个类没有序列化?
    人呢人呢?
      

  6.   

    单步跟一下,哪句错了,就知道哪句定义的类要加了,如加了[Serializable]还不行,那就只能用我说的方法了,具体,你可以在msdn或在网上查一下关于序列化与反序列化的东西。