我有一个包含A类对象列表的A类和B类。Windows Phone 8 - 序列化/反序列化XML时出错
public class Item
{
public string X{ get; set; }
public string Y{ get; set; }
}
public class ItemCollection
{
List<Item> items = new List<Item>();
//Some methods
}
我可以通过序列化:
IsolatedStorageFileStream ifs = new IsolatedStorageFileStream("myxml.xml", FileMode.Create, isfile);
DataContractSerializer ser = new DataContractSerializer(itemlist.items.GetType());
XmlWriter writer = XmlWriter.Create(ifs);
ser.WriteObject(writer, itemlist.items);
但反序列化它,我得到 “......缺少根元素。”错误。
IsolatedStorageFileStream ifs = new IsolatedStorageFileStream("myxml.xml", FileMode.Open, isfile);
DataContractSerializer ser = new DataContractSerializer(itemlist.Items.GetType());
XmlReader reader=XmlReader.Create(ifs);
itemlist.items= (List<Item>)ser.ReadObject(reader);
是否有任何其他/更好的方式序列化/反序列化一个类包含另一个类的列表/集合?
那么,实际的文件内容是什么? *是*缺失的根元素?这可能与你没有正确处理/关闭的东西的数量有关吗?您是否尝试添加'reader.MoveToContent()'? –
我正在写项目清单并阅读它们(文件被覆盖)。我得到“根元素缺失”。与reader.MoveToContent()也一样。 – aaa