Compare commits

...

2 Commits

Author SHA1 Message Date
nsnail
fdaf7518c6 style 2022-11-29 18:00:52 +08:00
nsnail
a61d057c76 feat 2022-11-29 18:00:21 +08:00
28 changed files with 87 additions and 91 deletions

View File

@ -1 +0,0 @@

View File

@ -1 +0,0 @@

View File

@ -1 +0,0 @@

View File

@ -1 +0,0 @@

View File

@ -86,4 +86,4 @@ resharper_wrap_object_and_collection_initializer_style = chop_always
[*.cs]
indent_style = space
indent_size = 4
tab_width = 4
tab_width = 4

View File

@ -1,18 +1,18 @@
<Project>
<PropertyGroup>
<Authors>nsnail</Authors>
<Product>NSExt</Product>
<Copyright>© 2006-2022 nsnail</Copyright>
<RepositoryUrl>https://github.com/nsnail/ns-ext.git</RepositoryUrl>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSource>true</EmbedUntrackedSource>
<EmbedAllSources>true</EmbedAllSources>
<RepositoryType>Git</RepositoryType>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/nsnail/ns-ext.git</PackageProjectUrl>
<PackageOutputPath>../../build/nupkgs</PackageOutputPath>
</PropertyGroup>
<PropertyGroup>
<Authors>nsnail</Authors>
<Product>NSExt</Product>
<Copyright>© 2006-2022 nsnail</Copyright>
<RepositoryUrl>https://github.com/nsnail/ns-ext.git</RepositoryUrl>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSource>true</EmbedUntrackedSource>
<EmbedAllSources>true</EmbedAllSources>
<RepositoryType>Git</RepositoryType>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/nsnail/ns-ext.git</PackageProjectUrl>
<PackageOutputPath>../../build/nupkgs</PackageOutputPath>
</PropertyGroup>
</Project>

View File

@ -1,4 +1,4 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NSExt", "NSExt\NSExt.csproj", "{54814D1B-C587-4D90-A7BE-4BE1E170D5FC}"
EndProject
@ -13,4 +13,4 @@ Global
{54814D1B-C587-4D90-A7BE-4BE1E170D5FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{54814D1B-C587-4D90-A7BE-4BE1E170D5FC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
EndGlobal

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class ByteExtensions
{

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class CharExtensions
{
@ -21,6 +21,4 @@ public static class CharExtensions
{
return IsAsciiLetterOrDigit(me) || me is '+' or '/' or '=';
}
}
}

View File

@ -1,4 +1,4 @@
// ReSharper disable UnusedMember.Global
// ReSharper disable UnusedMember.Global
namespace NSExt.Extensions;
@ -86,4 +86,4 @@ public static class DateTimeExtensions
{
return me.ToString("yyyyMMdd");
}
}
}

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class DbCommandExtensions
{
@ -26,5 +26,4 @@ public static class DbCommandExtensions
return sql;
}
}
}

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class DecimalExtensions
{
@ -13,6 +13,4 @@ public static class DecimalExtensions
var dec = Math.Round(me, place);
return dec;
}
}
}

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class EnumExtensions
{
@ -14,6 +14,4 @@ public static class EnumExtensions
var attrs = (DescriptionAttribute[])fi!.GetCustomAttributes(typeof(DescriptionAttribute), false);
return (attrs.Length != 0 ? attrs[0].Description : Enum.GetName(t, e)) ?? "";
}
}
}

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class EnumerableExtensions
{
@ -23,6 +23,4 @@ public static class EnumerableExtensions
{
return me is null || !me.Any();
}
}
}

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class GenericExtensions
{
@ -40,6 +40,4 @@ public static class GenericExtensions
{
return me.Equals(compare) ? ret : me;
}
}
}

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class IntExtensions
{
@ -33,6 +33,4 @@ public static class IntExtensions
{
return string.Join(".", BitConverter.GetBytes(me).Reverse());
}
}
}

View File

@ -1,4 +1,4 @@
using System.Text.Encodings.Web;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;

View File

@ -1,4 +1,4 @@
// ReSharper disable TemplateIsNotCompileTimeConstantProblem
// ReSharper disable TemplateIsNotCompileTimeConstantProblem
namespace NSExt.Extensions;
@ -63,6 +63,4 @@ public static class LoggerExtensions
{
me.LogWarning(CallerInfoMessage(message, callerName, callerFilePath, callerLineNumber));
}
}
}

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class LongExtensions
{
@ -24,7 +24,4 @@ public static class LongExtensions
{
return new DateTime(1970, 1, 1).AddMilliseconds(msFrom1970).ToLocalTime();
}
}
}

View File

@ -1,4 +1,4 @@
using System.Text.Json;
using System.Text.Json;
namespace NSExt.Extensions;
@ -18,4 +18,4 @@ public static class ObjectExtensions
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
});
}
}
}

View File

@ -0,0 +1,22 @@
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;
}
}

View File

@ -1,4 +1,4 @@
// ReSharper disable UnusedMember.Global
// ReSharper disable UnusedMember.Global
using System.Security.Cryptography;
@ -11,6 +11,21 @@ public static class StringExtensions
private static readonly JsonSerializerOptions _DEFAULT_JSON_SERIALIZER_OPTIONS =
default(JsonSerializerOptions).NewJsonSerializerOptions();
/// <summary>
/// MD5 hmac编码
/// </summary>
/// <param name="me">字符串</param>
/// <param name="key">密钥</param>
/// <param name="e">字符串使用的编码</param>
/// <returns>hash摘要的16进制文本形式无连字符小写</returns>
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);
}
/// <summary>
/// aes加密
/// </summary>
@ -554,19 +569,4 @@ public static class StringExtensions
{
return Uri.UnescapeDataString(me);
}
/// <summary>
/// MD5 hmac编码
/// </summary>
/// <param name="me">字符串</param>
/// <param name="key">密钥</param>
/// <param name="e">字符串使用的编码</param>
/// <returns>hash摘要的16进制文本形式无连字符小写</returns>
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);
}
}

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class TypeExtensions
{

View File

@ -1,4 +1,4 @@
namespace NSExt.Extensions;
namespace NSExt.Extensions;
public static class UriExtensions
{
@ -11,7 +11,4 @@ public static class UriExtensions
{
return "//" + me.Authority + me.PathAndQuery;
}
}
}

View File

@ -1,4 +1,4 @@
global using System.Data;
global using System.Data;
global using System.Data.Common;
global using System.Runtime.CompilerServices;
global using Microsoft.Extensions.Logging;

View File

@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<VersionPrefix>1.0.2</VersionPrefix>
<VersionPrefix>1.0.3</VersionPrefix>
</PropertyGroup>
<ItemGroup>

View File

@ -1 +0,0 @@