添加项目文件。
This commit is contained in:
66
BaseFrame/MultidimensionalTableConfig.cs
Normal file
66
BaseFrame/MultidimensionalTableConfig.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace ECCS
|
||||
{
|
||||
public sealed class MultidimensionalTableConfig
|
||||
{
|
||||
private static readonly object _lock = new();
|
||||
private static MultidimensionalTableConfig? _instance;
|
||||
|
||||
/// <summary>
|
||||
/// 单例实例(首次访问自动从文件加载)
|
||||
/// </summary>
|
||||
public static MultidimensionalTableConfig Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (_lock)
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
_instance = Load();
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// exe 目录下的 config.json
|
||||
/// </summary>
|
||||
[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; }
|
||||
|
||||
/// <summary>
|
||||
/// 保存到 config.json
|
||||
/// </summary>
|
||||
public void Save()
|
||||
{
|
||||
var json = JsonConvert.SerializeObject(this, Formatting.Indented);
|
||||
File.WriteAllText(ConfigFilePath, json);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从 config.json 加载
|
||||
/// </summary>
|
||||
private static MultidimensionalTableConfig Load()
|
||||
{
|
||||
if (!File.Exists(ConfigFilePath))
|
||||
{
|
||||
return new MultidimensionalTableConfig();
|
||||
}
|
||||
|
||||
var json = File.ReadAllText(ConfigFilePath);
|
||||
return JsonConvert.DeserializeObject<MultidimensionalTableConfig>(json)
|
||||
?? new MultidimensionalTableConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user