【发布时间】:2016-03-04 03:55:08
【问题描述】:
好吧,我之前问过如何将字典写入文件并被引用到http://web.archive.org/web/20100703052446/http://blogs.msdn.com/b/psheill/archive/2005/04/09/406823.aspx
所以,我正在尝试使用它,但我遇到的问题是它总是生成一个空文件。 我做错了什么?
我有:
private static void Serialize(TextWriter writer, IDictionary dictionary)
{
List<Entry> entries = new List<Entry>(dictionary.Count);
foreach (object key in dictionary.Keys)
{
entries.Add(new Entry(key, dictionary[key]));
}
System.Xml.Serialization.XmlSerializer serializer = new XmlSerializer(typeof(List<Entry>));
serializer.Serialize(writer, entries);
}
private static void Deserialize(TextReader reader, IDictionary dictionary)
{
dictionary.Clear();
XmlSerializer serializer = new XmlSerializer(typeof(List<Entry>));
List<Entry> list = (List<Entry>)serializer.Deserialize(reader);
foreach (Entry entry in list)
{
dictionary[entry.Key] = entry.Value;
}
}
public class Entry
{
public object Key;
public object Value;
public Entry()
{
}
public Entry(object key, object value)
{
Key = key;
Value = value;
}
}
}
private void saveConfig()
{
TextWriter writer = File.CreateText("C:\\Users\\test.xml");
Serialize(writer, this.configuration);
}
private Dictionary<String, MyConfig> configuration;
地点:
public class MyConfig{ public Item[] items=new Item[64];}
而 Item.. 是一个相当复杂的对象。
我在这里做错了什么?如何让它工作?还是不能像这样将 MyConfig 中的 Array 推送到 FIle?
编辑:
public class Item {
public Item(many params){}
uint whatever;
short whatever2;
byte bla;
String name,
List<Wrapper> wrappers;
ItemCache cache;
//many getters
}
public class ItemCache{
public ItemCache(many Params){}
List<CodeCache> cC;
}
public class Wrapper{
List<Cram> crams;
String name;
uint id;
}
【问题讨论】:
标签: c# xml dictionary serialization xmlserializer