Пишу свой мессенджер и нужно, чтобв после перезапуска пограммы, оставалась аватарка, которую выбрал пользователь. Без использования бд. Как грамотнее реализовать?
Очень просто. Нужно сериализовать классы объектов, которые нужно сохранить, после чего сохранить сериализацию в файл. Собственно при загрузке десериализовывать с него данные. Фишка в том, что в сериализуемом файле можно хранить изображения, если в программе они имеют тип Bitmap. --- Сообщение объединено с предыдущим 16 дек 2020 Вот пример кода, как можно сериализовывать данные в файл. Сам сериализуемый класс в файл: using System; using System.Collections.Generic; namespace Lol { [Serializable] public class Serialize { public List<Categories> cat { get; set;} public List<Question> que { get; set; } } } Код using System; using System.Collections.Generic; namespace Lol { [Serializable] public class Serialize { public List<Categories> cat { get; set;} public List<Question> que { get; set; } } } Сериализация и сохранение экземпляров класса в файл: public void save_to_file(string path) { Serialize s = new Serialize(); s.cat = cat; s.que = que; BinaryFormatter binFormat = new BinaryFormatter(); using (Stream fStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None)) { binFormat.Serialize(fStream, s); fStream.Close(); } } Код public void save_to_file(string path) { Serialize s = new Serialize(); s.cat = cat; s.que = que; BinaryFormatter binFormat = new BinaryFormatter(); using (Stream fStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None)) { binFormat.Serialize(fStream, s); fStream.Close(); } } И чтение данных из файла: public void load_is_file(string path) { if (File.Exists(path)) { System.IO.FileInfo file = new System.IO.FileInfo(path); long size = file.Length; if (size > 0) { FileStream fs = new FileStream(path, FileMode.Open); BinaryFormatter formatter = new BinaryFormatter(); Serialize s = new Serialize(); s = (Serialize)formatter.Deserialize(fs); cat = s.cat; que = s.que; fs.Close(); } } } Код public void load_is_file(string path) { if (File.Exists(path)) { System.IO.FileInfo file = new System.IO.FileInfo(path); long size = file.Length; if (size > 0) { FileStream fs = new FileStream(path, FileMode.Open); BinaryFormatter formatter = new BinaryFormatter(); Serialize s = new Serialize(); s = (Serialize)formatter.Deserialize(fs); cat = s.cat; que = s.que; fs.Close(); } } } Взял код из одного старого проекта. Но суть думаю понятно. Кстати класс Question тут как раз хранит в себе свойство с типом Bitmap. Извиняюсь за качество кода, но проект очень старый.) Так что не бейте. Однако суть думаю понятна.) Если нет то могу объяснить подробнее.