GeWuYou 267d7cc84d feat(setting): 添加设置系统事件通知和重置功能
- 在SettingsModel中添加事件相关依赖引用
- 在SettingsPersistence中实现设置加载、保存、删除的事件发送机制
- 添加SettingsDeletedEvent用于通知设置删除操作
- 添加SettingsResetEvent和SettingsResetAllEvent支持设置重置功能
- 在SettingsPersistence中新增ResetAsync和ResetAllAsync方法
- 修改TryApply方法为实例方法并添加设置应用过程的事件通知
- 添加SettingsApplyingEvent和SettingsAppliedEvent跟踪设置应用状态
- [skip ci]
2026-01-17 13:43:15 +08:00

53 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
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, ISettingsData, new();
/// <summary>
/// 异步保存指定的设置数据
/// </summary>
Task SaveAsync<T>(T section) where T : class, ISettingsData;
/// <summary>
/// 异步检查指定类型的设置数据是否存在
/// </summary>
Task<bool> ExistsAsync<T>() where T : class, ISettingsData;
/// <summary>
/// 异步删除指定类型的设置数据
/// </summary>
Task DeleteAsync<T>() where T : class, ISettingsData;
/// <summary>
/// 保存所有设置数据
/// </summary>
Task SaveAllAsync(IEnumerable<ISettingsData> allData);
/// <summary>
/// 加载所有已知类型的设置数据
/// </summary>
Task<IDictionary<Type, ISettingsData>> LoadAllAsync(IEnumerable<Type> knownTypes);
/// <summary>
/// 重置指定类型的设置数据为默认值
/// </summary>
Task<T> ResetAsync<T>() where T : class, ISettingsData, new();
/// <summary>
/// 重置所有设置数据为默认值
/// </summary>
Task ResetAllAsync();
}