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);

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


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

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

9   голосов , оценка 3.667 из 5