.net 序列化与反序列化的一个问题,望牛人指教~~~

2025-03-01 12:02:03
推荐回答(4个)
回答1:

看不到你的代码 不知道是怎么写的 提供一下的我自己的序列化方法
需要序列化的class前面加[Serializable]关键字:
//实例化MemoryStream
MemoryStream memoryStream = new MemoryStream();
//实例化Formatter
BinaryFormatter formatter = new BinaryFormatter();
//序列化类为base64字符串
formatter.Serialize(memoryStream, this);
//设定文件流中的位置
memoryStream.Position = 0;
//反序列化,在你的实例中memoryStream就是取到的序列化后的字符串
formatter.Deserialize(memoryStream);
Deserialize返回是一个object类型,可以强制转化为原始的类
本人这样在实际中使用没有问题,你如果无法使用,贴下代码出来

回答2:

你用的是哪种方式的序列号?
二进制的还是XML还是Json什么的?

补充:
二进制的序列化方式,那要求就比较苛刻,最好是一台机器是做序列化和反序列化。在不同的机器上做,必须保证环境完全一致,比如CPU类型、操作系统和.Net framework版本。

回答3:

估计你的流程不对,按照你所说你把目标序列化成了字符串,然后转换成字节数组保存在数据库,取的时候应该把取回的数组转化成你的字符串,在把字符串反序列化。
我感觉直接把目标搞成字节数组保存,取出直接还原,你可以用filestream memorystream.很多 仔细检查下就能发现毛病

回答4:

把序列化以后的二进制文件直接存数据库就行了
不需要中间字符串,要的是二进制数据