2010-03-22 113 views
1

我有這個奇怪的問題。我已經XML字符串,它看起來像下面 -聲明從xml字符串動態讀取數據類型

<key><int>5</int></key><value><int>10</int> 

序列化使用Paul's Code一個字典之後獲得上面的XML。現在我想將xml轉換回字典。

如何從XML獲取類型「int」並聲明字典如下?

Dictionary<int, int> 

任何線索?

回答

1

老問題,我知道,但這裏是一個通用的方法,可以與序列化的SerializableDictionary一起工作(正如您指出的那樣,由一個Paul提供)。如果這仍然是中肯的,你可以試試嗎?

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; 
}