2010-11-29 102 views
1

對於我的Windows 7手機應用程序,我序列化我的對象並將其保存到items.xmlXml.Serialization,正確的追加方法

現在,當我想添加更多項目到我的items.xml我有一個問題co的writer.WriteEndElement(); 已被寫入。 現在我所能做的就是讀取items.xml中的所有項目,並將它保存在列表中,然後覆蓋當前items.xml。這很難在手機上使用,所以我懷疑它是否正確,但是有沒有像樣解決這個問題,並因此體面地追加文件?謝謝 !

using (var isfs = new IsolatedStorageFileStream(@"items.xml", FileMode.Append, store)) 
        { 
         XmlWriterSettings settings = new XmlWriterSettings(); 
         settings.Indent = true; 
         using (var writer = XmlWriter.Create(isfs, settings)) 
         { 
          writer.WriteStartElement("ToDoItem"); 
          item.WriteXml(writer); 
          writer.WriteEndElement(); 
          writer.Close(); 
         } 
        } 

Misc。

[XmlRoot("ToDoItem")] 
    public class ToDoItem : IXmlSerializable{ 
    ... 
} 
+0

您正在使用的XMLSerializer或XMLWriter的? – 2010-11-29 17:05:33

回答

0

這裏是寫多個對象到XMLSerializer一種方法:

List<Object> myobjects = new List<Object>({myObject1, myObject2 }); // IEnumerable Constructor 

using (XMLSerializer xml = new XMLSerializer(typeof(List<Object>))) 
{ 
    // write them to the file 
    xml.Serialize(File.OpenWrite(filename), myobjects); 
} 

和反序列化:

using (XMLSerializer xml = new XMLSerializer(typeof(List<object>))) 
{ 
    List<Object> myobjects = xml.Deserialize(File.OpenRead(filename)); 
}