声明从xml字符串动态读取数据类型

时间:2010-03-22 10:19:00

标签: .net serialization dictionary xml-serialization

我有这个奇怪的问题。我有一个xml字符串,如下所示 -

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

使用Paul's Code序列化词典后获得上述xml。现在我想将xml转换回字典。

如何从xml中获取类型“int”并声明字典如下?

Dictionary<int, int>

任何线索?

1 个答案:

答案 0 :(得分: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;
}