只是好奇为什么词典不受支持XmlSerializer?
你可以通过使用DataContractSerializer和写入对象来轻松地绕过它XmlTextWriter,但是如果XmlSerializer考虑到它真的是一个KeyValuePairs数组,那么字典的特征是什么使它难以处理.
实际上,你可以传递一个IDictionary<TKey, TItem>期望的方法IEnumerable<KeyValuePairs<TKey, ITem>>.
我已经能够以这种方式序列化IEnumerable:
[XmlArray("TRANSACTIONS")]
[XmlArrayItem("TRANSACTION", typeof(Record))]
public IEnumerable<BudgetRecord> Records
{
get
{
foreach(Record br in _budget)
{
yield return br;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我意识到现在我需要一个包含集合的字典Dictionary<string, RecordCollection>(RecordCollection实现IEnumerable).
我怎样才能做到这一点?
我的项目需要一个文件,我将存储应该能够被用户读取和修改的键/值对数据.我希望程序只是期望键存在,我想尽快从文件中解析它们.
我可以将它们存储在XML中,但XML是复杂的方式,它需要遍历节点和子节点等等,我想要的只是一些获取文件并生成键值对的类.我希望尽可能少的错误处理,并希望尽可能少的代码完成它.
我可以自己编写类似的类,但我宁愿在框架中学习它不是两次发明轮子.在.NET(3.5)中是否有一些内置的魔术类能够这样做?
MagicClass kv = new MagicClass("Settings.ini"); // It doesn't neccesarily have to be an INI file, it can be any simple key/value pair format.
string Value1 = kv.get("Key1");
...
Run Code Online (Sandbox Code Playgroud)