diff --git a/scripts/rename.csx b/scripts/rename.csx index d0b2029f..422bd424 100644 --- a/scripts/rename.csx +++ b/scripts/rename.csx @@ -1,4 +1,4 @@ -#r "nuget: NSExt, 2.2.0" +#r "nuget: NSExt, 2.3.2" using NSExt.Extensions; Console.WriteLine("请输入原始名称(NetAdmin):"); diff --git a/src/backend/NetAdmin/NetAdmin.Infrastructure/Extensions/StringExtensions.cs b/src/backend/NetAdmin/NetAdmin.Infrastructure/Extensions/StringExtensions.cs index df9cd3da..3d11f41a 100644 --- a/src/backend/NetAdmin/NetAdmin.Infrastructure/Extensions/StringExtensions.cs +++ b/src/backend/NetAdmin/NetAdmin.Infrastructure/Extensions/StringExtensions.cs @@ -1,7 +1,3 @@ -using System.Numerics; -using Microsoft.CodeAnalysis.CSharp.Scripting; -using Microsoft.CodeAnalysis.Scripting; - namespace NetAdmin.Infrastructure.Extensions; /// @@ -9,105 +5,6 @@ namespace NetAdmin.Infrastructure.Extensions; /// public static class StringExtensions { - private const string _CHARACTERS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - private static readonly Regex _regexIpV4 = new(Chars.RGXL_IP_V4); - - /// - /// 将指定的输入字符串进行Base62解码 - /// - /// ArgumentException - public static string Base62Decode(this string me) - { - BigInteger result = 0; - - foreach (var index in me.Select(c => _CHARACTERS.IndexOf(c))) { - if (index < 0) { - throw new ArgumentException("Invalid character in Base62 string."); - } - - #pragma warning disable IDE0048, RCS1123, SA1407 - result = result * 62 + index; - #pragma warning restore SA1407, RCS1123, IDE0048 - } - - // Convert BigInteger back to byte array and then to string - var bytes = result.ToByteArray(); - - // Handle the sign bit - if (bytes[^1] == 0) { - Array.Resize(ref bytes, bytes.Length - 1); - } - - return Encoding.UTF8.GetString(bytes); - } - - /// - /// 将指定的输入字符串进行Base62编码 - /// - public static string Base62Encode(this string me) - { - // Convert string to byte array - var bytes = Encoding.UTF8.GetBytes(me); - - // Convert byte array to BigInteger for easier processing - var bigInteger = new BigInteger(bytes); - - if (bigInteger == 0) { - return _CHARACTERS[0].ToString(); - } - - var result = new StringBuilder(); - - while (bigInteger > 0) { - var remainder = (int)(bigInteger % 62); - bigInteger /= 62; - _ = result.Insert(0, _CHARACTERS[remainder]); - } - - return result.ToString(); - } - - /// - /// 解码避免转义的Base64 - /// - public static string Base64InUrlDecode(this string me) - { - return me.Replace("-", "+").Replace("_", "/"); - } - - /// - /// 编码避免转义的Base64 - /// - public static string Base64InUrlEncode(this string me) - { - return me.Replace("+", "-").Replace("/", "_"); - } - - /// - /// 计算Crc32 - /// - public static int Crc32(this string me) - { - return BitConverter.ToInt32(System.IO.Hashing.Crc32.Hash(Encoding.UTF8.GetBytes(me))); - } - - /// - /// 执行C#代码 - /// - public static Task ExecuteCSharpCodeAsync(this string me, Assembly[] assemblies, params string[] importNamespaces) - { - // 使用 Roslyn 编译并执行代码 - return CSharpScript.EvaluateAsync(me, ScriptOptions.Default.WithReferences(assemblies).WithImports(importNamespaces)); - } - - /// - /// 是否IPV4地址 - /// - public static bool IsIpV4(this string me) - { - return _regexIpV4.IsMatch(me); - } - /// /// object -> json /// @@ -124,22 +21,6 @@ public static class StringExtensions return me.Object(toType, GlobalStatic.JsonSerializerOptions); } - /// - /// 去掉前部字符串 - /// - public static string TrimPrefix(this string me, string clearStr) - { - return Regex.Replace(me, $"^{clearStr}", string.Empty); - } - - /// - /// 去掉尾部字符串 - /// - public static string TrimSuffix(this string me, string clearStr) - { - return Regex.Replace(me, $"{clearStr}$", string.Empty); - } - /// /// 去掉尾部字符串“Async” /// @@ -147,7 +28,7 @@ public static class StringExtensions public static string TrimSuffixAsync(this string me) #pragma warning restore VSTHRD200, ASA002, RCS1047 { - return TrimSuffix(me, "Async"); + return me.TrimSuffix("Async"); } /// @@ -155,6 +36,6 @@ public static class StringExtensions /// public static string TrimSuffixOptions(this string me) { - return TrimSuffix(me, "Options"); + return me.TrimSuffix("Options"); } } \ No newline at end of file diff --git a/src/backend/NetAdmin/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj b/src/backend/NetAdmin/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj index 4fd609a1..1a459774 100644 --- a/src/backend/NetAdmin/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj +++ b/src/backend/NetAdmin/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj @@ -6,10 +6,9 @@ - - +