如何在C#中使用BinaryFormatter反序列化已经序列化的数据?

问题描述 投票:0回答:1

我有一个 ConcurrentDictionary,我使用以下代码使用 BinaryFormatter 对其进行了序列化。

ConcurrentDictionary<string, DateTime> _jobsAck;
var binaryFormatter = new BinaryFormatter();
using (var stream = File.Open(BINARY_FILENAME, FileMode.OpenOrCreate))
{
    binaryFormatter.Serialize(stream, _jobsAck);
}

BinaryFormatter 有一些安全问题,现在我想完全摆脱它。所以现在我想使用其他序列化器反序列化文件的内容。

我尝试了很多(XML序列化器、NewtonSoft、ProtoBuf),但没有一个能工作(都抛出一些异常),有人可以帮忙吗?

目标.net框架:4.7.2

我也可以选择 .net 标准 <= 2.0 as well.

c# .net protobuf-net binaryformatter binary-serialization
1个回答
-1
投票

我不确定,但同样的问题已经通过

Newtonsoft.Json
解决了。请尝试以下方法...

string fileContent = File.ReadAllText(BINARY_FILENAME);
_jobsAck = JsonConvert.DeserializeObject<ConcurrentDictionary<string, DateTime>>(fileContent );
© www.soinside.com 2019 - 2024. All rights reserved.