mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 19:03:29 +08:00
- 在SettingsModel中添加事件相关依赖引用 - 在SettingsPersistence中实现设置加载、保存、删除的事件发送机制 - 添加SettingsDeletedEvent用于通知设置删除操作 - 添加SettingsResetEvent和SettingsResetAllEvent支持设置重置功能 - 在SettingsPersistence中新增ResetAsync和ResetAllAsync方法 - 修改TryApply方法为实例方法并添加设置应用过程的事件通知 - 添加SettingsApplyingEvent和SettingsAppliedEvent跟踪设置应用状态 - [skip ci]
53 lines
1.5 KiB
C#
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();
|
|
} |