Siema.
Kiedy chce zdeserializować listę wyrzuca mi wyjątek InvalidOperationException o treści There is an error in XML document (3, 4). Dlaczego tak się dzieje?
Odczyt:
public static void loadHighscores()
{
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
if(isf.FileExists("hs.xml"))
{
using (IsolatedStorageFileStream fs = isf.OpenFile("hs.xml", FileMode.Open))
{
XmlSerializer serializer = new XmlSerializer(typeof(HighscoreList));
highscores = serializer.Deserialize(fs) as HighscoreList;
}
}
}
}
Zapis:
public static void saveHighscores()
{
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
if(isf.FileExists("hs.xml"))
{
isf.DeleteFile("hs.xml");
}
using (IsolatedStorageFileStream fs = isf.CreateFile("hs.xml"))
{
XmlSerializer serializer = new XmlSerializer(typeof(HighscoreList));
serializer.Serialize(fs, highscores);
}
}
}
Klasy:
[XmlRoot("highscore_list")]
public class HighscoreList
{
public HighscoreList()
{
items = new List<Score>();
}
[XmlElement("items")]
public List<Score> items { get; set; }
}
public class Score
{
[XmlElement("name")]
public string name { get; set; }
[XmlElement("score")]
public double score { get; set; }
public Score(string name, double score)
{
this.name = name;
this.score = score;
}
}