Старый вопрос, я знаю, но вот общий подход, который работает с сериализованным SerializableDictionary (одним Полом, как вы указали). Если это все еще уместно, вы можете попробовать?
SerializableDictionary<int, int> stuffDict = ReadXML<int, int>(@"c:\test.xml");
private static SerializableDictionary<T, U> ReadXML<T, U>(string file)
{
SerializableDictionary<T, U> dict = new SerializableDictionary<T, U>();
if (File.Exists(file))
{
FileStream flStream = new FileStream(file, FileMode.Open, FileAccess.Read);
try
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(SerializableDictionary<T, U>));
dict = xmlSerializer.Deserialize(flStream) as SerializableDictionary<T, U>;
}
finally
{
flStream.Close();
}
}
return dict;
}