Ошибка сериализации/десериализации - 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д