Я пытаюсь сериализовать список объектов из класса и продолжать получать сообщение об ошибке, указывающее на ошибку в файле XML в точке (25, 6) (эти числа меняются в зависимости от того, что я пытаюсь сериализовать).Windows Phone 7 изолированные ошибки сериализации хранилища со списком объектов
Вот пример того, как я пытаюсь сериализовать данные:
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) { using((IsolatedStorageFileStream fs = isf.CreateFile("data.dat")) { XmlSerializer ser = new XmlSerializer(User.Data.GetType()); ser.Serialize(fs, User.Data);
} }
А вот как я десериализация данные:
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) { if (isf.FileExists("Data.dat")) { using (IsolatedStorageFileStream fs = isf.OpenFile("Data.dat", System.IO.FileMode.Open)) { XmlSerializer ser = new XmlSerializer(User.Data.GetType()); object obj = ser.Deserialize(fs); if (null != obj && obj is Data) User.Data= obj as Data; } } }
Я не видят никаких первоначальных проблем с этой частью коды , но он падает на каждый список объектов, которые я передаю.
Вот пример класса, я использую:
public class Data { public static int counter; public Data() { this.index = counter++; } public DateTime availablefrom { get; set; } public DateTime availableuntil { get; set; } public string course { get; set; } public DateTime? datetaken { get; set; } public double duration { get; set; } public string instructions { get; set; } public string instructorname { get; set; } public double scorepointscorrect { get; set; } public double scorepointspossible { get; set; } public string testname { get; set; } public int index { get; private set; } }
Когда я даю сериализатору только простые классы это работает, так что я знаю сериалайзер сам работают, но когда я создаю список объектов из моего класса Data или других классов он сбой. У кого-нибудь есть предложения?
Я действительно надеялся, что это предложение будет работать, потому что меня не осенило, что я сделал его закрытым. Тем не менее, изменение его на внутреннее устройство по-прежнему вызывало ту же ошибку и даже изменение его на публичный набор вызывало ту же ошибку. Вот что он говорит конкретно, только для пояснения: Необработанное исключение типа «System.InvalidOperationException» произошло в System.Xml.dll Дополнительная информация: В документе XML есть ошибка (2, 2). – legacybass
Я только что понял, что, пытаясь найти работу, я вчера сделал изменения после публикации этого запроса справки, который рассказывал сериализатору разную информацию, чем то, что я пытался десериализовать. После изменения свойства «index» на внутренний он работает отлично. Вы, ребята, потрясающие! – legacybass