namespace System.Text { public static partial class Base64UrlExtensions { /// /// Base64Url编码(ByteArray → String) /// /// /// public static string Base64UrlEncode(this byte[] inArray) { ReadOnlySpan inArray_ = inArray; return Base64UrlEncode(inArray_); } /// /// Base64Url编码(ByteArray → String) /// /// /// public static string? Base64UrlEncode_Nullable(this byte[]? inArray) { if (inArray == default) return default; return Base64UrlEncode(inArray); } /// /// Base64Url编码(String → String) /// /// /// public static string Base64UrlEncode(this string s) { var inArray = Encoding.UTF8.GetBytes(s); return Base64UrlEncode(inArray); } /// /// Base64Url编码(String → String) /// /// /// public static string? Base64UrlEncode_Nullable(this string? s) { if (s == default) return default; return Base64UrlEncode(s); } /// /// Base64Url解码(String → ByteArray) /// /// /// public static byte[] Base64UrlDecodeToByteArray(this string s) { var encoded = s.AsSpan(); return Base64UrlDecodeToByteArray(encoded); } /// /// Base64Url解码(String → ByteArray) /// /// /// public static byte[]? Base64UrlDecodeToByteArray_Nullable(this string? s) { if (s == default) return default; return Base64UrlDecodeToByteArray(s); } /// /// Base64Url解码(String → String) /// /// /// public static string Base64UrlDecode(this string s) { var bytes = Base64UrlDecodeToByteArray(s); return Encoding.UTF8.GetString(bytes); } /// /// Base64Url解码(String → String) /// /// /// public static string? Base64UrlDecode_Nullable(this string? s) { if (s == default) return default; return Base64UrlDecode(s); } } }