If you are using .Net 3.5, you can use the DataContractSerializer, which will serialize the dictionary. It is also faster than BinaryFormatter or 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);
source
share