我有一个要存储在XML文件中并从XML文件中检索的键/值对列表。所以这个任务和描述的类似
here
. 我正在尝试按照标记的答案中的建议(使用
键值空气
和A
XML串行化器
)但我不能让它起作用。
到目前为止我有一个“设置”课程…
public class Settings
{
public int simpleValue;
public List<KeyValuePair<string, int>> list;
}
…此类的实例…
Settings aSettings = new Settings();
aSettings.simpleValue = 2;
aSettings.list = new List<KeyValuePair<string, int>>();
aSettings.list.Add(new KeyValuePair<string, int>("m1", 1));
aSettings.list.Add(new KeyValuePair<string, int>("m2", 2));
…以及将该实例写入XML文件的以下代码:
XmlSerializer serializer = new XmlSerializer(typeof(Settings));
TextWriter writer = new StreamWriter("c:\\testfile.xml");
serializer.Serialize(writer, aSettings);
writer.Close();
结果文件是:
<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<simpleValue>2</simpleValue>
<list>
<KeyValuePairOfStringInt32 />
<KeyValuePairOfStringInt32 />
</list>
</Settings>
因此,虽然元素的数目是正确的,但列表中的对的键和值都不会存储。显然,我做了一些根本错误的事情。我的问题是:
-
如何在文件中存储列表的键/值对?
-
如何将列表中元素的默认生成名称“keyValuePairofStringInt32”更改为我想要的其他名称,如“listElement”?