Ошибка сериализации/десериализации - 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; }
}