List<DataRow>/List<DataTable>/List<DataSet>/List<Exception>

解决方案 »

  1.   

    一个类被标识为[可序列化]之后,也不一定能够被序列化.如果这个类中含有不可被序列化的对象,那么它就不可被序列化.
    一般来说使用XML序列化类可以强制性的解决这个问题.但是需要你的类提供一个public的无参数构造函数.
      

  2.   

    .net 1.1里DataRow是不可被序列化的,但是.net 2.0里应该可以序列化了,其他的也应该都可以序列化哦
      

  3.   

    DataRow不论是在1.1还是2.0里都是不可以序列化的,但是可以把DataRow存储在DataTable进行序列化。但是List <DataTable> 就不能序列化了,搞不懂为什么,所以上来问问,看看有没有高手能给解决一下。
      

  4.   

    自己转换成BYTE[],任何对象均可序列化
      

  5.   

    这么做是可以,但是我现在的问题不是怎么做,我是想知道它为什么不能序列化,有个理由啊,像hashtable不能序列化是因为它里面存储的是什么值不清楚,还有就是它的散列因子没有办法重复,所以不能序列化。但是List<DataTable>为什么不能序列化就不清楚了。
      

  6.   

    同意4楼。
    任何东西都是可以序列化的。 
    只要他可逆就行。
    微软灭有提供的,你可以自己做。他提供方法Interface.
      

  7.   

    DataTable 可以的,DataSet DataRow 不行
      

  8.   

    很明显啊,如果一个类的基类没有实现序列化,那么这个类是不能实现序列化的,例如datatable就实现了接口ISerializable,而datarow没有
      

  9.   

    我知道DataTable,DataSet,Exception是可以序列化的。问题是他们的List范型(List <DataTable> /List <DataSet> /List <Exception> )是不可以的,不知道是为什么?
      

  10.   

    它们只是不能序列化为XML而已,可以用BinaryFormatter.Serialize (Stream, Object) 序列化任何类型。
      

  11.   

                    我是向内存中序列化以上讨论的对象,具体的如下。但是List   <DataTable>   /List   <DataSet>   /List   <Exception>   这三种情况是不可以的,不知道为什么?
                    MemoryStream stream = new MemoryStream();
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(stream, this);
                    stream.Position = 0;
                    object returnValue = (SerializableParameter)formatter.Deserialize(stream);
                    stream.Close();
      

  12.   

    List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
    如上,如果你想实现list<T>的序列化,首先必须使他的基类实现序列化,问题是他的基类是只读的,所以不用想去序列化了