【问题标题】: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;
}