GeWuYou 0b7c64fd99 feat(data): 添加数据仓库功能并重构设置系统接口
- 新增 DataRepository 类实现数据存储和读取功能
- 添加数据仓库配置选项类 DataRepositoryOptions
- 定义 IData 接口作为通用数据标记接口
- 实现数据加载、保存、删除等异步操作方法
- 添加数据事件系统包括加载、保存、删除等事件类型
- 将 ISettingsData 接口重命名为 IResettable 并更新相关实现
- 更新 SettingsModel 和 SettingsPersistence 使用新的接口
- 修改 SettingsBatchChangedEvent 和 SettingsBatchSavedEvent 使用 IResettable 类型
- 重构 AudioSettings、GraphicsSettings、LocalizationSettings 继承新接口
- 更新 IPersistentApplyAbleSettings 接口依赖为 IResettable
2026-01-28 20:08:34 +08:00

35 lines
1.0 KiB
C#

using GFramework.Core.Abstractions.utility;
namespace GFramework.Game.Abstractions.setting;
/// <summary>
/// 设置持久化接口
/// 定义了设置数据的异步加载、保存、检查存在性和删除操作
/// </summary>
public interface ISettingsPersistence : IContextUtility
{
/// <summary>
/// 异步加载指定类型的设置数据
/// </summary>
Task<T> LoadAsync<T>() where T : class, IResettable, new();
/// <summary>
/// 异步保存指定的设置数据
/// </summary>
Task SaveAsync<T>(T section) where T : class, IResettable;
/// <summary>
/// 异步检查指定类型的设置数据是否存在
/// </summary>
Task<bool> ExistsAsync<T>() where T : class, IResettable;
/// <summary>
/// 异步删除指定类型的设置数据
/// </summary>
Task DeleteAsync<T>() where T : class, IResettable;
/// <summary>
/// 保存所有设置数据
/// </summary>
Task SaveAllAsync(IEnumerable<IResettable> allData);
}