From a61d057c761c5e03ebde26494e88f6b3d23fe0a8 Mon Sep 17 00:00:00 2001 From: nsnail Date: Tue, 29 Nov 2022 18:00:21 +0800 Subject: [PATCH] feat --- src/Directory.Build.props | 32 ++++++++--------- src/NSExt/Extensions/ByteExtensions.cs | 6 +++- src/NSExt/Extensions/CharExtensions.cs | 6 ++++ src/NSExt/Extensions/DateTimeExtensions.cs | 5 +++ src/NSExt/Extensions/DbCommandExtensions.cs | 6 ++++ src/NSExt/Extensions/DecimalExtensions.cs | 6 ++++ src/NSExt/Extensions/EnumExtensions.cs | 5 +++ src/NSExt/Extensions/EnumerableExtensions.cs | 5 +++ src/NSExt/Extensions/GenericExtensions.cs | 6 ++++ src/NSExt/Extensions/IntExtensions.cs | 5 +++ .../JsonSerializerOptionsExtensions.cs | 6 +++- src/NSExt/Extensions/LoggerExtensions.cs | 5 +++ src/NSExt/Extensions/LongExtensions.cs | 5 +++ src/NSExt/Extensions/ObjectExtensions.cs | 5 +++ src/NSExt/Extensions/StreamExtensions.cs | 26 ++++++++++++++ src/NSExt/Extensions/StringExtensions.cs | 34 +++++++++++-------- src/NSExt/Extensions/TypeExtensions.cs | 6 +++- src/NSExt/Extensions/UriExtensions.cs | 6 ++++ src/NSExt/GlobalUsings.cs | 2 +- src/NSExt/NSExt.csproj | 2 +- 20 files changed, 143 insertions(+), 36 deletions(-) create mode 100644 src/NSExt/Extensions/StreamExtensions.cs diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 6640d64..2a19419 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,18 +1,18 @@ - - nsnail - NSExt - © 2006-2022 nsnail - https://github.com/nsnail/ns-ext.git - true - true - true - Git - true - true - snupkg - MIT - https://github.com/nsnail/ns-ext.git - ../../build/nupkgs - + + nsnail + NSExt + © 2006-2022 nsnail + https://github.com/nsnail/ns-ext.git + true + true + true + Git + true + true + snupkg + MIT + https://github.com/nsnail/ns-ext.git + ../../build/nupkgs + \ No newline at end of file diff --git a/src/NSExt/Extensions/ByteExtensions.cs b/src/NSExt/Extensions/ByteExtensions.cs index abfa269..2c28d3e 100644 --- a/src/NSExt/Extensions/ByteExtensions.cs +++ b/src/NSExt/Extensions/ByteExtensions.cs @@ -34,4 +34,8 @@ public static class ByteExtensions { return me.HexDe(Encoding.UTF8); } -} \ No newline at end of file +} + + + + diff --git a/src/NSExt/Extensions/CharExtensions.cs b/src/NSExt/Extensions/CharExtensions.cs index d906477..911c50b 100644 --- a/src/NSExt/Extensions/CharExtensions.cs +++ b/src/NSExt/Extensions/CharExtensions.cs @@ -24,3 +24,9 @@ public static class CharExtensions } + + + + + + diff --git a/src/NSExt/Extensions/DateTimeExtensions.cs b/src/NSExt/Extensions/DateTimeExtensions.cs index 449dfd5..5412ccf 100644 --- a/src/NSExt/Extensions/DateTimeExtensions.cs +++ b/src/NSExt/Extensions/DateTimeExtensions.cs @@ -87,3 +87,8 @@ public static class DateTimeExtensions return me.ToString("yyyyMMdd"); } } + + + + + diff --git a/src/NSExt/Extensions/DbCommandExtensions.cs b/src/NSExt/Extensions/DbCommandExtensions.cs index 693152f..468d1d3 100644 --- a/src/NSExt/Extensions/DbCommandExtensions.cs +++ b/src/NSExt/Extensions/DbCommandExtensions.cs @@ -28,3 +28,9 @@ public static class DbCommandExtensions } } + + + + + + diff --git a/src/NSExt/Extensions/DecimalExtensions.cs b/src/NSExt/Extensions/DecimalExtensions.cs index 6bbde35..5263fda 100644 --- a/src/NSExt/Extensions/DecimalExtensions.cs +++ b/src/NSExt/Extensions/DecimalExtensions.cs @@ -16,3 +16,9 @@ public static class DecimalExtensions } + + + + + + diff --git a/src/NSExt/Extensions/EnumExtensions.cs b/src/NSExt/Extensions/EnumExtensions.cs index 10642a3..6358130 100644 --- a/src/NSExt/Extensions/EnumExtensions.cs +++ b/src/NSExt/Extensions/EnumExtensions.cs @@ -17,3 +17,8 @@ public static class EnumExtensions } + + + + + diff --git a/src/NSExt/Extensions/EnumerableExtensions.cs b/src/NSExt/Extensions/EnumerableExtensions.cs index 369ccae..fd0b72f 100644 --- a/src/NSExt/Extensions/EnumerableExtensions.cs +++ b/src/NSExt/Extensions/EnumerableExtensions.cs @@ -26,3 +26,8 @@ public static class EnumerableExtensions } + + + + + diff --git a/src/NSExt/Extensions/GenericExtensions.cs b/src/NSExt/Extensions/GenericExtensions.cs index eb09d52..1943203 100644 --- a/src/NSExt/Extensions/GenericExtensions.cs +++ b/src/NSExt/Extensions/GenericExtensions.cs @@ -43,3 +43,9 @@ public static class GenericExtensions } + + + + + + diff --git a/src/NSExt/Extensions/IntExtensions.cs b/src/NSExt/Extensions/IntExtensions.cs index 40d244a..5877cf3 100644 --- a/src/NSExt/Extensions/IntExtensions.cs +++ b/src/NSExt/Extensions/IntExtensions.cs @@ -36,3 +36,8 @@ public static class IntExtensions } + + + + + diff --git a/src/NSExt/Extensions/JsonSerializerOptionsExtensions.cs b/src/NSExt/Extensions/JsonSerializerOptionsExtensions.cs index 048b217..b989f96 100644 --- a/src/NSExt/Extensions/JsonSerializerOptionsExtensions.cs +++ b/src/NSExt/Extensions/JsonSerializerOptionsExtensions.cs @@ -18,4 +18,8 @@ public static class JsonSerializerOptionsExtensions PropertyNameCaseInsensitive = true }; } -} \ No newline at end of file +} + + + + diff --git a/src/NSExt/Extensions/LoggerExtensions.cs b/src/NSExt/Extensions/LoggerExtensions.cs index a4e09ac..46bb32c 100644 --- a/src/NSExt/Extensions/LoggerExtensions.cs +++ b/src/NSExt/Extensions/LoggerExtensions.cs @@ -66,3 +66,8 @@ public static class LoggerExtensions } + + + + + diff --git a/src/NSExt/Extensions/LongExtensions.cs b/src/NSExt/Extensions/LongExtensions.cs index 1b9e7a5..088486f 100644 --- a/src/NSExt/Extensions/LongExtensions.cs +++ b/src/NSExt/Extensions/LongExtensions.cs @@ -28,3 +28,8 @@ public static class LongExtensions + + + + + diff --git a/src/NSExt/Extensions/ObjectExtensions.cs b/src/NSExt/Extensions/ObjectExtensions.cs index fa7c23f..6e865f6 100644 --- a/src/NSExt/Extensions/ObjectExtensions.cs +++ b/src/NSExt/Extensions/ObjectExtensions.cs @@ -19,3 +19,8 @@ public static class ObjectExtensions }); } } + + + + + diff --git a/src/NSExt/Extensions/StreamExtensions.cs b/src/NSExt/Extensions/StreamExtensions.cs new file mode 100644 index 0000000..273580c --- /dev/null +++ b/src/NSExt/Extensions/StreamExtensions.cs @@ -0,0 +1,26 @@ +namespace NSExt.Extensions; + +public static class StreamExtensions +{ + public static long FirstByteIndex(this Stream me, byte[] findBytes) + { + int data; + while ((data = me.ReadByte()) != -1) + if (findBytes.Contains((byte)data)) + return me.Position; + + return -1; + } + + public static bool IsTextStream(this Stream me) + { + return me.FirstByteIndex(new byte[] { + 0x00, + 0xff + }) < 0; + } +} + + + + diff --git a/src/NSExt/Extensions/StringExtensions.cs b/src/NSExt/Extensions/StringExtensions.cs index 9201f7d..6a54ac0 100644 --- a/src/NSExt/Extensions/StringExtensions.cs +++ b/src/NSExt/Extensions/StringExtensions.cs @@ -11,6 +11,21 @@ public static class StringExtensions private static readonly JsonSerializerOptions _DEFAULT_JSON_SERIALIZER_OPTIONS = default(JsonSerializerOptions).NewJsonSerializerOptions(); + /// + /// MD5 hmac编码 + /// + /// 字符串 + /// 密钥 + /// 字符串使用的编码 + /// hash摘要的16进制文本形式(无连字符小写) + private static string Md5Hmac(this string me, string key, Encoding e) + { + using var md5Hmac = new HMACMD5(e.GetBytes(key)); + return BitConverter.ToString(md5Hmac.ComputeHash(e.GetBytes(me))) + .Replace("-", string.Empty) + .ToLower(CultureInfo.CurrentCulture); + } + /// /// aes加密 /// @@ -554,19 +569,8 @@ public static class StringExtensions { return Uri.UnescapeDataString(me); } +} + + + - /// - /// MD5 hmac编码 - /// - /// 字符串 - /// 密钥 - /// 字符串使用的编码 - /// hash摘要的16进制文本形式(无连字符小写) - private static string Md5Hmac(this string me, string key, Encoding e) - { - using var md5Hmac = new HMACMD5(e.GetBytes(key)); - return BitConverter.ToString(md5Hmac.ComputeHash(e.GetBytes(me))) - .Replace("-", string.Empty) - .ToLower(CultureInfo.CurrentCulture); - } -} \ No newline at end of file diff --git a/src/NSExt/Extensions/TypeExtensions.cs b/src/NSExt/Extensions/TypeExtensions.cs index a0e43d9..19d64d1 100644 --- a/src/NSExt/Extensions/TypeExtensions.cs +++ b/src/NSExt/Extensions/TypeExtensions.cs @@ -16,4 +16,8 @@ public static class TypeExtensions .SelectMany(interfaceType => interfaceType.GetCustomAttributes(attributeType, true))) .Cast(); } -} \ No newline at end of file +} + + + + diff --git a/src/NSExt/Extensions/UriExtensions.cs b/src/NSExt/Extensions/UriExtensions.cs index 5bf932f..ef50231 100644 --- a/src/NSExt/Extensions/UriExtensions.cs +++ b/src/NSExt/Extensions/UriExtensions.cs @@ -15,3 +15,9 @@ public static class UriExtensions + + + + + + diff --git a/src/NSExt/GlobalUsings.cs b/src/NSExt/GlobalUsings.cs index 385788a..acbc150 100644 --- a/src/NSExt/GlobalUsings.cs +++ b/src/NSExt/GlobalUsings.cs @@ -6,4 +6,4 @@ global using System.Globalization; global using System.Text; global using System.Text.RegularExpressions; global using System.Web; -global using System.ComponentModel; \ No newline at end of file +global using System.ComponentModel; diff --git a/src/NSExt/NSExt.csproj b/src/NSExt/NSExt.csproj index 90f3251..ac83bf8 100644 --- a/src/NSExt/NSExt.csproj +++ b/src/NSExt/NSExt.csproj @@ -3,7 +3,7 @@ net6.0;net7.0 enable - 1.0.2 + 1.0.3