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