using Newtonsoft.Json; using System; using System.IO; namespace ECCS { public sealed class MultidimensionalTableConfig { private static readonly object _lock = new(); private static MultidimensionalTableConfig? _instance; /// /// 单例实例(首次访问自动从文件加载) /// public static MultidimensionalTableConfig Instance { get { lock (_lock) { if (_instance == null) { _instance = Load(); } return _instance; } } } /// /// exe 目录下的 config.json /// [JsonIgnore] private static string ConfigFilePath => Path.Combine(AppContext.BaseDirectory, "config.json"); // ===== 配置项 ===== public string AppToken { get; set; } public string DefaultTableId { get; set; } public bool DefaultTableIsDeleted { get; set; } /// /// 保存到 config.json /// public void Save() { var json = JsonConvert.SerializeObject(this, Formatting.Indented); File.WriteAllText(ConfigFilePath, json); } /// /// 从 config.json 加载 /// private static MultidimensionalTableConfig Load() { if (!File.Exists(ConfigFilePath)) { return new MultidimensionalTableConfig(); } var json = File.ReadAllText(ConfigFilePath); return JsonConvert.DeserializeObject(json) ?? new MultidimensionalTableConfig(); } } }