+++为什么下面的类型不支持序列化? List<DataRow>/List<DataTable>/List<DataSet>/List<Exception> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个类被标识为[可序列化]之后,也不一定能够被序列化.如果这个类中含有不可被序列化的对象,那么它就不可被序列化.一般来说使用XML序列化类可以强制性的解决这个问题.但是需要你的类提供一个public的无参数构造函数. .net 1.1里DataRow是不可被序列化的,但是.net 2.0里应该可以序列化了,其他的也应该都可以序列化哦 DataRow不论是在1.1还是2.0里都是不可以序列化的,但是可以把DataRow存储在DataTable进行序列化。但是List <DataTable> 就不能序列化了,搞不懂为什么,所以上来问问,看看有没有高手能给解决一下。 自己转换成BYTE[],任何对象均可序列化 这么做是可以,但是我现在的问题不是怎么做,我是想知道它为什么不能序列化,有个理由啊,像hashtable不能序列化是因为它里面存储的是什么值不清楚,还有就是它的散列因子没有办法重复,所以不能序列化。但是List<DataTable>为什么不能序列化就不清楚了。 同意4楼。任何东西都是可以序列化的。 只要他可逆就行。微软灭有提供的,你可以自己做。他提供方法Interface. DataTable 可以的,DataSet DataRow 不行 很明显啊,如果一个类的基类没有实现序列化,那么这个类是不能实现序列化的,例如datatable就实现了接口ISerializable,而datarow没有 我知道DataTable,DataSet,Exception是可以序列化的。问题是他们的List范型(List <DataTable> /List <DataSet> /List <Exception> )是不可以的,不知道是为什么? 它们只是不能序列化为XML而已,可以用BinaryFormatter.Serialize (Stream, Object) 序列化任何类型。 我是向内存中序列化以上讨论的对象,具体的如下。但是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(); List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable如上,如果你想实现list<T>的序列化,首先必须使他的基类实现序列化,问题是他的基类是只读的,所以不用想去序列化了 怎么把GroupBox的Textbox的ReadOnly都设置为True SQL查询时获取相符记录数的问题! .net跨平台疑惑 gridview翻页问题 弱弱的问下 下面几句代码都是什么意思? sql问题 DataGridView问题 C#的winform如何实现打印超市类的小票?(打印机是热敏式打印机 在线等。) 求高手进来看看 ftp创建文件夹保存 水精报表(Crystal Report)怎样实现套打? panel的定位 急~在线等~~SQL语句问题~
一般来说使用XML序列化类可以强制性的解决这个问题.但是需要你的类提供一个public的无参数构造函数.
任何东西都是可以序列化的。
只要他可逆就行。
微软灭有提供的,你可以自己做。他提供方法Interface.
MemoryStream stream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, this);
stream.Position = 0;
object returnValue = (SerializableParameter)formatter.Deserialize(stream);
stream.Close();
如上,如果你想实现list<T>的序列化,首先必须使他的基类实现序列化,问题是他的基类是只读的,所以不用想去序列化了