using Newtonsoft.Json; namespace Млаумчерб.Клиент; public record Настройки { public string имя_пользователя { get; set; } = ""; public int выделенная_память_мб { get; set; } = 4096; public bool открывать_на_весь_экран { get; set; } public static Настройки ЗагрузитьИзФайла(string имя_файла = "млаумчерб.настройки") { Приложение.Логгер.LogInfo(nameof(Настройки), $"попытка загрузить настройки из файла '{имя_файла}'"); if(!File.Exists(имя_файла)) { Приложение.Логгер.LogInfo(nameof(Настройки), "файл не существует"); return new Настройки(); } string текст = File.ReadAllText(имя_файла); Настройки? н = JsonConvert.DeserializeObject<Настройки>(текст); if (н == null) { File.Move(имя_файла, имя_файла + ".старые", true); н = new Настройки(); н.СохранитьВФайл(); Ошибки.ПоказатьСообщение($"Не удалось прочитать настройки.\n" + $"Сломанный файл настроек переименован в '{имя_файла}.старые'.\n" + $"Создан новый файл '{имя_файла}'."); } Приложение.Логгер.LogInfo(nameof(Настройки), $"настройки загружены: {н}"); return н; } public void СохранитьВФайл(string имя_файла = "млаумчерб.настройки") { Приложение.Логгер.LogInfo(nameof(Настройки), $"попытка сохранить настройки в файл '{имя_файла}'"); var текст = JsonConvert.SerializeObject(this, Formatting.Indented); File.WriteAllText(имя_файла, текст); Приложение.Логгер.LogInfo(nameof(Настройки), $"настройки сохранены: {текст}"); } }