GeWuYou 516a9e2281 feat(setting): 添加设置持久化功能
- 实现了 SettingsPersistence 类提供设置数据的加载、保存、删除等操作
- 定义了 ISettingsPersistence 接口规范设置持久化行为
- 集成存储服务支持异步读写设置节数据
- 实现类型安全的设置节存取机制
- 提供设置节存在性检查和删除功能
- 采用 "Settings_类型名称" 格式生成存储键名
2026-01-16 23:25:33 +08:00

39 lines
1.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Threading.Tasks;
namespace GFramework.Game.Abstractions.setting;
/// <summary>
/// 设置持久化接口
/// 定义了设置数据的异步加载、保存、检查存在性和删除操作
/// </summary>
public interface ISettingsPersistence
{
/// <summary>
/// 异步加载指定类型的设置节
/// </summary>
/// <typeparam name="T">设置节类型必须实现ISettingsSection接口并具有无参构造函数</typeparam>
/// <returns>返回加载的设置节实例</returns>
Task<T> LoadAsync<T>() where T : class, ISettingsSection, new();
/// <summary>
/// 异步保存指定的设置节
/// </summary>
/// <typeparam name="T">设置节类型必须实现ISettingsSection接口</typeparam>
/// <param name="section">要保存的设置节实例</param>
/// <returns>异步操作任务</returns>
Task SaveAsync<T>(T section) where T : class, ISettingsSection;
/// <summary>
/// 异步检查指定类型的设置节是否存在
/// </summary>
/// <typeparam name="T">设置节类型必须实现ISettingsSection接口</typeparam>
/// <returns>如果设置节存在则返回true否则返回false</returns>
Task<bool> ExistsAsync<T>() where T : class, ISettingsSection;
/// <summary>
/// 异步删除指定类型的设置节
/// </summary>
/// <typeparam name="T">设置节类型必须实现ISettingsSection接口</typeparam>
/// <returns>异步操作任务</returns>
Task DeleteAsync<T>() where T : class, ISettingsSection;
}