Постоянная ошибка при десериализации - C#
Формулировка задачи:
Пишу свою игрушку. Сделал загрузку через десериализацию класса из xml. Вот код:
Да, я обернул в try-catch все. Но все равно на строке 11 вылезает ошибка System.InvalidOperationException, тк файл пустой. Помогите пожалуйста
P.s. Иногда еще при сохранение героя в xml в самом конце почемуто добавляется лишняя >, я тоже не могу понять почему
public Hero Load_Hero() { try { Hero newPerson = null; XmlSerializer formatter = new XmlSerializer(typeof(Hero)); using (FileStream fs = new FileStream("SavedHeroes.xml", FileMode.OpenOrCreate)) { try { try { newPerson = (Hero)formatter.Deserialize(fs); } catch (System.InvalidOperationException) { Console.WriteLine("Ошибка! Сохранение героя не найденою Создайте нового героя."); Console.ReadLine(); Console.Clear(); return null; } Console.WriteLine("Объект загружен"); Console.WriteLine("Имя героя -- {0}", newPerson.Name); Console.WriteLine(); Console.ReadLine(); Console.Clear(); return newPerson; } catch (System.InvalidOperationException) { Console.WriteLine("Ошибка! Сохранение героя не найденою Создайте нового героя."); Console.ReadLine(); Console.Clear(); return null; } } } catch (System.InvalidOperationException) { Console.WriteLine("Ошибка! Сохранение героя не найденою Создайте нового героя."); Console.ReadLine(); Console.Clear(); return null; } }
Решение задачи: «Постоянная ошибка при десериализации»
textual
Листинг программы
public Hero Load_Hero() { const string savePath = "SavedHeroes.xml"; Hero newPerson = null; if (File.Exists(savePath)) { XmlSerializer formatter = new XmlSerializer(typeof(Hero)); try { using (FileStream fs = new FileStream(savePath, FileMode.Open, FileAccess.Read)) { newPerson = (Hero)formatter.Deserialize(fs); } } catch { } } if (newPerson != null) { Console.WriteLine("Объект загружен"); Console.WriteLine("Имя героя -- {0}", newPerson.Name); Console.WriteLine(); } else { Console.WriteLine("Ошибка! Сохранение героя не найденою Создайте нового героя."); } Console.ReadLine(); Console.Clear(); return newPerson; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д