.net – 将键/值对列表序列化为XML
发布时间:2020-12-16 08:04:03 所属栏目:百科 来源:网络整理
导读:我有一个我想要存储和从XML文件检索的键/值对的列表。所以这个任务与描述的 here类似。我试图在标记的答案(使用一个KeyValuePair和一个XmlSerializer)遵循建议,但我没有得到它的工作。 到目前为止我是一个“设置”类… public class Settings{ public int s
我有一个我想要存储和从XML文件检索的键/值对的列表。所以这个任务与描述的
here类似。我试图在标记的答案(使用一个KeyValuePair和一个XmlSerializer)遵循建议,但我没有得到它的工作。
到目前为止我是一个“设置”类… 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> 因此,我的列表中的对的键和值都不存储,尽管元素的数量是正确的。显然我在做一些基本错误的事情。我的问题是: >如何将列表的键/值对存储在文件中?
KeyValuePair不可序列化,因为它具有只读属性。
Here是更多的信息(感谢Thomas Levesque)。
要更改生成的名称,请使用[XmlType]属性。 定义你自己的这样: [Serializable] [XmlType(TypeName="WhateverNameYouLike")] public struct KeyValuePair<K,V> { public K Key { get; set; } public V Value { get; set; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |