当我尝试序列化字典时,一切正常。但是当我反序列化它显示计数为0.但是,它与列表一起工作正常。当我们反序列化列表和字典时,究竟会发生什么?
答案 0 :(得分:3)
词典并不真正支持序列化。这是一个让许多程序员感到困扰的已知问题,因此如果您使用Google“.NET Dictionary Serialization”,您将获得许多带有“操作方法”和解决方法的结果。
例如,此blog post建议您使用KeyedCollection类。
答案 1 :(得分:1)
如果您使用.Net 3.5,则可以使用将序列化字典的DataContractSerializer。它也比BinaryFormatter或XmlSerializer快。
using System.Runtime.Serialization;
var dict = new Dictionary<string, string>();
dict.Add("a","a");
DataContractSerializer dcs = new DataContractSerializer(dict.GetType());
MemoryStream byteStream = new MemoryStream();
dcs.WriteObject(byteStream, dict);
byteStream.Position = 0;
var dict2 = dcs.ReadObject(byteStream);