Serializable в binary коллекции лист - C#
Формулировка задачи:
прошу помочь, не могу понять как десериализовать коллекцию List
ошибка в методе десериализации коллекции settings, как правильно сделать?
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Net.Mail;
using System.Security.Permissions;
namespace e_mail
{
[Serializable]
public class Settings
{
public string LoginEmail { get; set; } // почтовое имя
public string PasswordEmail { get; set; } // пароль
public int SmtpPort { get; set; } // порт для smtp
public string SmtpHost { get; set; } // сервер для отправки
}
class Program
{
static void Main(string[] args)
{
Settings options = new Settings();
List<Settings> settings = new List<Settings>();
Console.Write("Введите адрес электронной почты -> ");
options.LoginEmail = Console.ReadLine();
Console.Write("Введите пароль -> ");
options.PasswordEmail = Console.ReadLine();
Console.Write("Введите порт сервера -> ");
options.SmtpPort = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите smtp сервер -> ");
options.SmtpHost = Console.ReadLine();
settings.Add(options);
BinaryFormatter formatter = new BinaryFormatter();
//получаем поток, куда будем записывать сериализованный объект
using (FileStream stream = new FileStream("setings.dat", FileMode.OpenOrCreate))
{
formatter.Serialize(stream, options);
Console.WriteLine("Объект сериализован");
}
// десериализация из файла people.dat
using (FileStream stream = new FileStream("setings.dat", FileMode.Open))
{
settings = (List<Settings>)formatter.Deserialize(stream);
Console.WriteLine("Объект десериализован: ");
Console.WriteLine("login: {0} -> password: {1} -> port: {2} -> smtp сервер: {3}", settings[0].LoginEmail, settings[0].PasswordEmail, settings[0].SmtpPort, settings[0].SmtpHost);
}
Console.ReadLine();
}
}
}Решение задачи: «Serializable в binary коллекции лист»
textual
Листинг программы
formatter.Serialize(stream, settings);