【发布时间】:2016-11-17 18:41:46
【问题描述】:
我按照this guide 将我的会话数据存储在一个 sql server 表中。
如何反序列化存储的值? sql 数据类型是 varbinary。
我已经尝试过了,但我在反序列化行收到此错误:“输入流不是有效的二进制格式”
BinaryFormatter formatter = new BinaryFormatter();
byte[] byteVal = _context.Sessions.First().Value;
System.IO.Stream stream = new System.IO.MemoryStream(byteVal);
var des = formatter.Deserialize(stream);
【问题讨论】:
-
如果您将对象存储为
varbinary,为什么还要尝试序列化它?您应该能够使用byte[]直接在 SQL 中存储和检索它 -
我不想序列化任何东西。我想反序列化 varbinary 值。 @CamBruce
-
对不起,我看错了。除非你没有在你的 sn-p 中包含它,否则你不应该直接序列化
byteVal或Sessions.First()吗? -
抱歉,有点糊涂。我会将它序列化为什么?不是已经序列化了吗? @CamBruce
-
Session对象不应该自动为你处理序列化和反序列化吗?
标签: c# asp.net serialization asp.net-core asp.net-core-mvc