adressmoeistranici
@adressmoeistranici
Делатель

Ошибка в десериализации XML?

У меня есть массив строк и еще строка - поля структуры.
Нужно сохранить в файл эти поля, но так, чтобы данные удобно выглядели в файле на крайний случай.
Решил их сериализовать через XML.
Сериализует вроде норм, а вот десериализация не получается - получаю ошибку.
Ошибка в XML-файле:
public static bool LoadTableFromPath(string path, out TableData tableData)
            {
                tableData = new TableData();
                FileStream fs = null;
                XmlSerializer formatter = new XmlSerializer(typeof(string[]));
                try
                {
                    fs = new FileStream(path, FileMode.Open, FileAccess.Read);
                    tableData.words = new string[100];
                    tableData.words = (string[])formatter.Deserialize(fs);
                    tableData.description = Convert.ToString(formatter.Deserialize(fs));
                    fs.Close();
                }
                catch (Exception exc)
                {
                    Console.WriteLine(">>>" + exc.Message);
                    if (fs != null)
                        fs.Close();
                    PasswordAnalyserFront.state = PasswordAnalyserFront.ConnectState.Inner;
                    return false;
                }
                PasswordAnalyserFront.state = PasswordAnalyserFront.ConnectState.Inner;
                return true;
            }
            public static void SaveTableFromPath(string path, TableData tableData)
            {
                using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write))
                {
                    XmlSerializer formatter = new XmlSerializer(typeof(string[]));
                    formatter.Serialize(fs, tableData.words);
                    formatter = new XmlSerializer(typeof(string));
                    formatter.Serialize(fs, tableData.description);
                }
            }

В чем заключается проблема?
  • Вопрос задан
  • 172 просмотра
Решения вопроса 2
@d-stream
Готовые решения - не подаю, но...
В чем проблема создать класс для сериализации, который будет включать в себя и words и description?

хинт: копируем xml и в студии Edit-PasteSpecial
<?xml version="1.0" encoding="UTF8"?> 
<FILE>
<WORDS>
<WORD>abcd</WORD>
<WORD>qwe</WORD>
<WORD>fdsa</WORD>
</WORDS>
<DESCRIPTION>this is description</DESCRIPTION>
</FILE>
Ответ написан
adressmoeistranici
@adressmoeistranici Автор вопроса
Делатель
Пришлось создавать xml документ и описывать его структуру чтоб сохранить экземпляр структуры
а моя ошибка заключалась в том что после сериализации в документе отсутствовал корневой элемент - сериализуемый класс
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08
Посмотри что у тебя получается в файле, соответствует оно тому, что ты ожидаешь? Ты в один файл сериализуешь сначала words, а потому туда-же description, в результате первое перезаписывается вторым.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы