Объявление типа данных динамически читая из строки XML - PullRequest
1 голос
/ 22 марта 2010

У меня странная проблема.У меня есть строка xml, которая выглядит следующим образом -

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

Приведенный выше xml получается после сериализации словаря с использованием кода Павла .Теперь я хочу преобразовать XML обратно в словарь.

Как я могу получить тип "int" из XML и объявить словарь следующим образом?

Dictionary<int, int>

Любые подсказки?

1 Ответ

1 голос
/ 03 марта 2011

Старый вопрос, я знаю, но вот общий подход, который работает с сериализованным 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;
}
...