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