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())); + } + } +}