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

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

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

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

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

textual
Листинг программы
XmlSerializer formatter = new XmlSerializer(typeof(PropertyContainer));
 
        public bool saveProperties()
        {
            try
            {
                if (curPropertiesSet == null)
                {
                    return false;
                }
                using (FileStream fs = new FileStream(path + @"" + curPropertiesSet.Name + ".xml", FileMode.Create))
                {
                    formatter.Serialize(fs, curPropertiesSet);
                }
                return true;
            }
            catch (Exception ex)
            {
                host.writeLog("Не удалось сохранить свойства корректора\r\n" + ex.ToString(), (int)logLevels.ERROR);
                return false;
            }
        }
 
        public bool loadProperies(String fileName)
        {
            try
            {
                if (!File.Exists(fileName))
                {
                    host.writeLog("Файл свойств EK-270 не существует", (int)logLevels.WARNING);
                    return false;
                }
                FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate);
                PropertyContainer propertiesSet = (formatter.Deserialize(fs) as PropertyContainer);
                propertiesList.Add(propertiesSet);
                return true;
            }
            catch (Exception ex)
            {
                host.writeLog("Не удалось загрузить настройки из файла " + fileName + "\r\n" + ex.ToString(), (int)logLevels.ERROR);
                return false;
            }
        }

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


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

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

13   голосов , оценка 4.154 из 5
Похожие ответы