[返回](./Runtime-README.md) # /Convention/Runtime/EasySave --- 完整的序列化和数据持久化系统,提供易用的数据存储和读取功能 ## 核心特性 ### 支持的数据格式 - **EasySave - JSON** 支持多态的json格式 - **Binary** 紧凑的二进制格式 ## EasySave主类 ### 基本保存操作 #### 泛型保存 - `Save(string key, T value)` 保存到默认文件 - `Save(string key, T value, string filePath)` 保存到指定文件 - `Save(string key, T value, EasySaveSettings settings)` 使用自定义设置 #### 原始数据保存 - `SaveRaw(byte[] bytes)` / `SaveRaw(string str)` 保存原始数据 - `AppendRaw(byte[] bytes)` / `AppendRaw(string str)` 追加原始数据 ### 基本加载操作 #### 泛型加载 - `Load(string key)` 从默认文件加载 - `Load(string key, string filePath)` 从指定文件加载 - `Load(string key, T defaultValue)` 带默认值的安全加载 #### 原始数据加载 - `LoadRawBytes()` / `LoadRawString()` 加载原始数据 - `LoadString(string key, string defaultValue)` 加载字符串 #### 加载到现有对象 - `LoadInto(string key, T obj)` 将数据加载到现有对象 - `LoadInto(string key, string filePath, object obj)` 从指定文件加载到对象 ### 序列化操作 #### 内存序列化 - `Serialize(T value, EasySaveSettings settings = null)` 序列化为字节数组 - `Deserialize(byte[] bytes, EasySaveSettings settings = null)` 从字节数组反序列化 - `DeserializeInto(byte[] bytes, T obj)` 反序列化到现有对象 ### 加密和压缩 #### 加密操作 - `EncryptBytes(byte[] bytes, string password = null)` 加密字节数组 - `DecryptBytes(byte[] bytes, string password = null)` 解密字节数组 - `EncryptString(string str, string password = null)` 加密字符串 - `DecryptString(string str, string password = null)` 解密字符串 #### 压缩操作 - `CompressBytes(byte[] bytes)` 压缩字节数组 - `DecompressBytes(byte[] bytes)` 解压字节数组 - `CompressString(string str)` 压缩字符串 - `DecompressString(string str)` 解压字符串 ### 备份系统 #### 备份操作 - `CreateBackup()` / `CreateBackup(string filePath)` 创建备份 - `RestoreBackup(string filePath)` 恢复备份 #### 时间戳 - `GetTimestamp()` / `GetTimestamp(string filePath)` 获取文件时间戳 ### 缓存系统 #### 缓存操作 - `StoreCachedFile()` / `StoreCachedFile(string filePath)` 存储缓存文件 - `CacheFile()` / `CacheFile(string filePath)` 缓存文件 ## EasySaveSettings配置 ### 枚举类型定义 #### 存储位置 ```csharp public enum Location { File, InternalMS, Cache } ``` #### 目录类型 ```csharp public enum Directory { PersistentDataPath, DataPath } ``` #### 加密类型 ```csharp public enum EncryptionType { None, AES } ``` #### 压缩类型 ```csharp public enum CompressionType { None, Gzip } ``` #### 数据格式 ```csharp public enum Format { JSON } ``` #### 引用模式 ```csharp public enum ReferenceMode { ByRef, ByValue, ByRefAndValue } ```