1
私のWindows 7の電話アプリケーションでは、オブジェクトをシリアル化してitems.xml
に保存します。Xml.Serialization、正しい方法を追加する
ここでitems.xmlに他のアイテムを追加したい場合は、すでに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();
}
}
その他
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);
}
そしてデシリアライズする:ここで
[XmlRoot("ToDoItem")]
public class ToDoItem : IXmlSerializable{
...
}
あなたはのXmlSerializerたりするXMLWriterを使用していますか? –
?私はIXmlSerializableとPublic void WriteXml(System.Xml.XmlWriterライター)を暗示した。 { writer.WriteElementString( "name"、ToDoName); writer.WriteElementString( "description"、ToDoDescription); writer.WriteElementString( "priortiy"、ToDoPriortiySelection.ToString()); } – Syneryx