Постоянная ошибка при десериализации - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д