Как сериализовать List<>? - C#

Узнай цену своей работы

Формулировка задачи:

Продолжаю писать свою игрушку... Решил сделать инвентарь через List<Item>, где Item -- класс предмета. Так вот, теперь сохранение через сериализацию не робит, как быть ? Выдает ошибку System.InvalidOperationException на строке
Листинг программы
  1. XmlSerializer formatter = new XmlSerializer(typeof(Hero));
Я уже ненавижу эту строчку...

Решение задачи: «Как сериализовать List<>?»

textual
Листинг программы
  1. XmlSerializer formatter = new XmlSerializer(typeof(PropertyContainer));
  2.  
  3.         public bool saveProperties()
  4.         {
  5.             try
  6.             {
  7.                 if (curPropertiesSet == null)
  8.                 {
  9.                     return false;
  10.                 }
  11.                 using (FileStream fs = new FileStream(path + @"" + curPropertiesSet.Name + ".xml", FileMode.Create))
  12.                 {
  13.                     formatter.Serialize(fs, curPropertiesSet);
  14.                 }
  15.                 return true;
  16.             }
  17.             catch (Exception ex)
  18.             {
  19.                 host.writeLog("Не удалось сохранить свойства корректора\r\n" + ex.ToString(), (int)logLevels.ERROR);
  20.                 return false;
  21.             }
  22.         }
  23.  
  24.         public bool loadProperies(String fileName)
  25.         {
  26.             try
  27.             {
  28.                 if (!File.Exists(fileName))
  29.                 {
  30.                     host.writeLog("Файл свойств EK-270 не существует", (int)logLevels.WARNING);
  31.                     return false;
  32.                 }
  33.                 FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate);
  34.                 PropertyContainer propertiesSet = (formatter.Deserialize(fs) as PropertyContainer);
  35.                 propertiesList.Add(propertiesSet);
  36.                 return true;
  37.             }
  38.             catch (Exception ex)
  39.             {
  40.                 host.writeLog("Не удалось загрузить настройки из файла " + fileName + "\r\n" + ex.ToString(), (int)logLevels.ERROR);
  41.                 return false;
  42.             }
  43.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы