Ошибка сериализации/десериализации - C#

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

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

Подскажите что не так?
Листинг программы
  1. private void button3_Click(object sender, EventArgs e)
  2. {
  3. captcha.Instance.DataItems.Add(new CaptchaFormat() { question = textBox2.Text, answer = textBox3.Text });
  4. captcha.Instance.Save();
  5. }
  6. private void button4_Click(object sender, EventArgs e)
  7. {
  8. captcha.LoadData();
  9. foreach (CaptchaFormat item in captcha.Instance.DataItems)
  10. richTextBox1.Text+=item.question+"\t"+item.answer+"\n";
  11. }
При нажатии на одну из кнопок вылетает ошибка на строку с сериализацией класса captcha. Сам класс:
Листинг программы
  1. using System.Collections.Generic;
  2. using System.IO;
  3. using System.IO.Compression;
  4. using System.Runtime.Serialization.Formatters.Binary;
  5. namespace WindowsFormsApplication3
  6. {
  7. class CaptchaFormat
  8. {
  9. public string question { get; set; }
  10. public string answer { get; set; }
  11. }
  12. class captcha
  13. {
  14. public readonly static captcha Instance = new captcha();
  15. public static string fileName = "captcha.bin";
  16. public List<CaptchaFormat> DataItems { get; private set; }
  17. public captcha()
  18. {
  19. DataItems = new List<CaptchaFormat>();
  20. }
  21. public static void LoadData()
  22. {
  23. if (File.Exists(fileName))
  24. {
  25. Instance.Load();
  26. }
  27. }
  28. public void Load()
  29. {
  30. using (var stream = File.OpenRead(fileName))
  31. using (var zip = new GZipStream(stream, CompressionMode.Decompress))
  32. DataItems = (List<CaptchaFormat>)new BinaryFormatter().Deserialize(zip);
  33. }
  34. public void Save()
  35. {
  36. using (var stream = File.OpenWrite(fileName))
  37. using (var zip = new GZipStream(stream, CompressionMode.Compress))
  38. new BinaryFormatter().Serialize(zip, DataItems);
  39. }
  40. }
  41. }
Необработанное исключение типа "System.Runtime.Serialization.SerializationException" в mscorlib.dll Дополнительные сведения: Тип "WindowsFormsApplication3.CaptchaFormat" в сборке "WindowsFormsApplication3, Version=1.0.0.0, Culture=neutral,

Решение задачи: «Ошибка сериализации/десериализации»

textual
Листинг программы
  1.     [Serializable]
  2.     class CaptchaFormat
  3.     {
  4.         public string question { get; set; }
  5.         public string answer { get; set; }
  6.     }

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


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

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

8   голосов , оценка 3.25 из 5

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

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

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