Ошибка сериализации/десериализации - C#
Формулировка задачи:
Подскажите что не так?
При нажатии на одну из кнопок вылетает ошибка на строку с сериализацией класса captcha.
Сам класс:
Необработанное исключение типа "System.Runtime.Serialization.SerializationException" в mscorlib.dll
Дополнительные сведения: Тип "WindowsFormsApplication3.CaptchaFormat" в сборке "WindowsFormsApplication3, Version=1.0.0.0, Culture=neutral,
Листинг программы
- private void button3_Click(object sender, EventArgs e)
- {
- captcha.Instance.DataItems.Add(new CaptchaFormat() { question = textBox2.Text, answer = textBox3.Text });
- captcha.Instance.Save();
- }
- private void button4_Click(object sender, EventArgs e)
- {
- captcha.LoadData();
- foreach (CaptchaFormat item in captcha.Instance.DataItems)
- richTextBox1.Text+=item.question+"\t"+item.answer+"\n";
- }
Листинг программы
- using System.Collections.Generic;
- using System.IO;
- using System.IO.Compression;
- using System.Runtime.Serialization.Formatters.Binary;
- namespace WindowsFormsApplication3
- {
- class CaptchaFormat
- {
- public string question { get; set; }
- public string answer { get; set; }
- }
- class captcha
- {
- public readonly static captcha Instance = new captcha();
- public static string fileName = "captcha.bin";
- public List<CaptchaFormat> DataItems { get; private set; }
- public captcha()
- {
- DataItems = new List<CaptchaFormat>();
- }
- public static void LoadData()
- {
- if (File.Exists(fileName))
- {
- Instance.Load();
- }
- }
- public void Load()
- {
- using (var stream = File.OpenRead(fileName))
- using (var zip = new GZipStream(stream, CompressionMode.Decompress))
- DataItems = (List<CaptchaFormat>)new BinaryFormatter().Deserialize(zip);
- }
- public void Save()
- {
- using (var stream = File.OpenWrite(fileName))
- using (var zip = new GZipStream(stream, CompressionMode.Compress))
- new BinaryFormatter().Serialize(zip, DataItems);
- }
- }
- }
Решение задачи: «Ошибка сериализации/десериализации»
textual
Листинг программы
- [Serializable]
- class CaptchaFormat
- {
- public string question { get; set; }
- public string answer { get; set; }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д