2010-03-22 88 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; 
}