【问题标题】:Declaring the datatype dynamically reading from an xml string声明从 xml 字符串动态读取的数据类型
【发布时间】:2011-01-30 06:51:28
【问题描述】:

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

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

上面的xml是使用Paul's Code序列化一个Dictionary后得到的。现在我想将 xml 转换回字典。

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

Dictionary<int, int>

有什么线索吗?

【问题讨论】:

    标签: .net serialization dictionary xml-serialization


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      相关资源
      最近更新 更多