private void ReadFromXml(XmlReader reader)
 {
     reader.ReadStartElement("dictionary");
     while (reader.NodeType != XmlNodeType.EndElement)
     {
         reader.ReadStartElement("item");
         string key = reader.ReadElementString("key");
         reader.ReadStartElement("value");
         object value = null;
         if (reader.Name == string.Empty)
         {
             value = reader.Value;
             reader.Read();
         }
         else if (reader.Name == "dictionary")
         {
             DictionarySerializer innerSerializer = new DictionarySerializer();
             innerSerializer.ReadFromXml(reader);
             value = innerSerializer._dictionary;
         }
         reader.ReadEndElement();
         reader.ReadEndElement();
         reader.MoveToContent();
         _dictionary.Add(key, value);
     }
     reader.ReadEndElement();
 }