如何在c#中反序列化一个可变二进制文件

本文关键字:一个 二进制文件 反序列化 | 更新日期: 2023-09-27 18:18:23

我按照这个指南将会话数据存储在一个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);

如何在c#中反序列化一个可变二进制文件

下面的代码检索您的值并将其放入名为byteVal的字节数组中:

byte[] byteVal = _context.Sessions.First().Value;

我个人更喜欢将这样的字节数组命名为bytes而不是byteVal,只是为了更清楚地表明它有多个字节长。

byte[] bytes = _context.Sessions.First().Value;

无论如何,此时您可以将bytes与任何接受字节数组的方法一起使用。(如会话存储)

因此不需要序列化或序列化