diff --git a/Api/Utility/DataExtension.cs b/Api/Utility/DataExtension.cs
new file mode 100644
index 0000000..315ea96
--- /dev/null
+++ b/Api/Utility/DataExtension.cs
@@ -0,0 +1,35 @@
+namespace Milimoe.FunGame.Core.Api.Utility
+{
+ public static class DictionaryExtensions
+ {
+ ///
+ /// 从 中获取指定键的值,并将其转换为指定的类型。
+ ///
+ /// 要转换的目标类型
+ /// 要从中获取值的字典
+ /// 要获取值的键
+ /// 转换后的值,如果键不存在或转换失败,则返回默认值。
+ public static T? GetValue(this Dictionary dict, string key)
+ {
+ if (dict is null || !dict.TryGetValue(key, out object? value) || value is null)
+ {
+ return default;
+ }
+
+ try
+ {
+ // 如果已经是目标类型,则直接返回
+ if (value is T t)
+ {
+ return t;
+ }
+
+ return NetworkUtility.JsonDeserializeFromDictionary(dict, key);
+ }
+ catch (Exception)
+ {
+ return default;
+ }
+ }
+ }
+}
diff --git a/Api/Utility/General.cs b/Api/Utility/General.cs
index 5e0edb4..31d7897 100644
--- a/Api/Utility/General.cs
+++ b/Api/Utility/General.cs
@@ -491,24 +491,6 @@ namespace Milimoe.FunGame.Core.Api.Utility
}
}
- ///
- /// 为字符串(string)添加扩展方法
- ///
- public static class StringExtension
- {
- ///
- /// 使用 HMAC-SHA512 算法对文本进行加密
- /// 注意:此方法会先将 转为小写并计算两次哈希。
- ///
- /// 需要加密的文本
- /// 用于加密的秘钥
- /// 加密后的 HMAC-SHA512 哈希值
- public static string Encrypt(this string text, string key)
- {
- return Encryption.HmacSha512(text, Encryption.HmacSha512(text, key.ToLower()));
- }
- }
-
#endregion
#region 验证服务
diff --git a/Api/Utility/StringExtension.cs b/Api/Utility/StringExtension.cs
new file mode 100644
index 0000000..6eeaac8
--- /dev/null
+++ b/Api/Utility/StringExtension.cs
@@ -0,0 +1,20 @@
+namespace Milimoe.FunGame.Core.Api.Utility
+{
+ ///
+ /// 为字符串(string)添加扩展方法
+ ///
+ public static class StringExtension
+ {
+ ///
+ /// 使用 HMAC-SHA512 算法对文本进行加密
+ /// 注意:此方法会先将 转为小写并计算两次哈希。
+ ///
+ /// 需要加密的文本
+ /// 用于加密的秘钥
+ /// 加密后的 HMAC-SHA512 哈希值
+ public static string Encrypt(this string text, string key)
+ {
+ return Encryption.HmacSha512(text, Encryption.HmacSha512(text, key.ToLower()));
+ }
+ }
+}