永发信息网

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

答案:4  悬赏:0  手机版
解决时间 2021-12-01 10:22
  • 提问者网友:寂寞梧桐
  • 2021-11-30 16:58
.net 序列化与反序列化的一个问题,望牛人指教~~~
最佳答案
  • 五星知识达人网友:等灯
  • 2021-11-30 17:09
看不到你的代码 不知道是怎么写的 提供一下的我自己的序列化方法
需要序列化的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类型,可以强制转化为原始的类
本人这样在实际中使用没有问题,你如果无法使用,贴下代码出来
全部回答
  • 1楼网友:拾荒鲤
  • 2021-11-30 20:34
你用的是哪种方式的序列号?
二进制的还是XML还是Json什么的?

补充:
二进制的序列化方式,那要求就比较苛刻,最好是一台机器是做序列化和反序列化。在不同的机器上做,必须保证环境完全一致,比如CPU类型、操作系统和.Net framework版本。
  • 2楼网友:英雄的欲望
  • 2021-11-30 19:50
估计你的流程不对,按照你所说你把目标序列化成了字符串,然后转换成字节数组保存在数据库,取的时候应该把取回的数组转化成你的字符串,在把字符串反序列化。
我感觉直接把目标搞成字节数组保存,取出直接还原,你可以用filestream memorystream.很多 仔细检查下就能发现毛病
  • 3楼网友:等灯
  • 2021-11-30 18:43
把序列化以后的二进制文件直接存数据库就行了
不需要中间字符串,要的是二进制数据
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯