我有一个 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.
我不确定,但同样的问题已经通过
Newtonsoft.Json
解决了。请尝试以下方法...
string fileContent = File.ReadAllText(BINARY_FILENAME);
_jobsAck = JsonConvert.DeserializeObject<ConcurrentDictionary<string, DateTime>>(fileContent );