This commit is contained in:
2023-01-19 20:35:34 +08:00
parent 05ca80acda
commit 9384bc0692
23 changed files with 225 additions and 237 deletions

View File

@@ -8,7 +8,7 @@ public static class ByteExtensions
/// <summary>
/// base64编码
/// </summary>
/// <param name="me">待编码的字节数组</param>
/// <param name="me">me</param>
/// <returns>编码后的base64字符串</returns>
public static string Base64(this byte[] me)
{
@@ -18,7 +18,7 @@ public static class ByteExtensions
/// <summary>
/// 将字节数组解码成字符串
/// </summary>
/// <param name="me">字节数组</param>
/// <param name="me">me</param>
/// <param name="e">字符串使用的编码方式</param>
/// <returns>解码后的原始字符串</returns>
public static string HexDe(this byte[] me, Encoding e)
@@ -29,7 +29,7 @@ public static class ByteExtensions
/// <summary>
/// 将字节数组解码成字符串
/// </summary>
/// <param name="me">字节数组</param>
/// <param name="me">me</param>
/// <returns>解码后的原始字符串</returns>
public static string HexDe(this byte[] me)
{
@@ -43,8 +43,8 @@ public static class ByteExtensions
/// <param name="upperCase">是否大写</param>
/// <param name="splitShar">字节间分隔符</param>
/// <param name="splitInterval">分隔符跳跃字节数</param>
public static string String(this IEnumerable<byte> me, bool upperCase = true, string splitShar = ""
, int splitInterval = 1)
public static string Str(this IEnumerable<byte> me, bool upperCase = true, string splitShar = ""
, int splitInterval = 1)
{
var sb = new StringBuilder();
var i = 0;

View File

@@ -13,7 +13,7 @@ public static class DateTimeExtensions
/// <summary>
/// 将一个过去时间对象与当前时间相减转换成“xx以前”的字符串, 如2秒以前, 3天以前
/// </summary>
/// <param name="me">时间对象</param>
/// <param name="me">me</param>
/// <returns>字符串</returns>
public static string TimeAgo(this DateTime me)
{
@@ -26,7 +26,7 @@ public static class DateTimeExtensions
/// <summary>
/// 指定时间的世界协调时的unix时间戳形式
/// </summary>
/// <param name="me">指定时间</param>
/// <param name="me">me</param>
/// <returns>unix时间戳</returns>
public static long TimeUnixUtc(this DateTime me)
{

View File

@@ -1,7 +1,7 @@
namespace NSExt.Extensions;
/// <summary>
/// DbCommandExtensions
/// DbCommandExtensions
/// </summary>
public static class DbCommandExtensions
{
@@ -10,22 +10,21 @@ public static class DbCommandExtensions
/// </summary>
public static string ParameterFormat(this DbCommand me)
{
//var aa = pars.ToDictionary(it => it.ParameterName, it => it.Value);
// var aa = pars.ToDictionary(it => it.ParameterName, it => it.Value);
var sql = me.CommandText;
//应逆向替换,否则由于 多个表的过滤器问题导致替换不完整 如 @TenantId1 @TenantId10
// 应逆向替换,否则由于 多个表的过滤器问题导致替换不完整 如 @TenantId1 @TenantId10
for (var i = me.Parameters.Count - 1; i >= 0; i--) {
#pragma warning disable IDE0072
sql = me.Parameters[i].DbType switch {
#pragma warning restore IDE0072
DbType.String or DbType.DateTime or DbType.Date or DbType.Time or DbType.DateTime2
or DbType.DateTimeOffset or DbType.Guid or DbType.VarNumeric or DbType.AnsiStringFixedLength
or DbType.AnsiString
or DbType.StringFixedLength =>
sql.Replace(me.Parameters[i].ParameterName, "'" + me.Parameters[i].Value + "'")
, DbType.Boolean => sql.Replace(//
me.Parameters[i].ParameterName
, Convert.ToBoolean(me.Parameters[i].Value, CultureInfo.InvariantCulture) ? "1" : "0")
or DbType.AnsiString or DbType.StringFixedLength => sql.Replace( //
me.Parameters[i].ParameterName, "'" + me.Parameters[i].Value + "'")
, DbType.Boolean => sql.Replace( //
me.Parameters[i].ParameterName
, Convert.ToBoolean(me.Parameters[i].Value, CultureInfo.InvariantCulture) ? "1" : "0")
, _ => sql.Replace(me.Parameters[i].ParameterName, me.Parameters[i].Value?.ToString())
};
}

View File

@@ -8,7 +8,7 @@ public static class DecimalExtensions
/// <summary>
/// 四舍五入后的近似值
/// </summary>
/// <param name="me">数字</param>
/// <param name="me">me</param>
/// <param name="place">小数点位数</param>
/// <returns>处理后的值</returns>
public static decimal Round(this decimal me, int place)

View File

@@ -17,7 +17,7 @@ public static class EnumerableExtensions
/// 判断对象是否为null或不存在子元素如果为集合对象
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="me">指定对象</param>
/// <param name="me">me</param>
/// <returns>空则返回true</returns>
public static bool NullOrEmpty<T>(this IEnumerable<T> me)
{

View File

@@ -9,7 +9,7 @@ public static class GenericExtensions
/// 从指定的对象拷贝属性
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="me">拷贝目标</param>
/// <param name="me">me</param>
/// <param name="copyObj">拷贝来源</param>
/// <param name="propNameList">需要处理的属性名</param>
/// <param name="isIncludeOrExclude">True包含false排除</param>

View File

@@ -17,7 +17,7 @@ public static class IntExtensions
/// <summary>
/// 生成随机数
/// </summary>
/// <param name="me">大于等于[0],小于[1]</param>
/// <param name="me">me</param>
public static int Rand(this int[] me)
{
return new Random(Guid.NewGuid().GetHashCode()).Next(me[0], me[1]);

View File

@@ -1,27 +0,0 @@
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace NSExt.Extensions;
/// <summary>
/// JsonSerializerOptionsExtensions
/// </summary>
public static class JsonSerializerOptionsExtensions
{
/// <summary>
/// NewJsonSerializerOptions
/// </summary>
public static JsonSerializerOptions NewJsonSerializerOptions(this JsonSerializerOptions _)
{
return new JsonSerializerOptions {
ReadCommentHandling = JsonCommentHandling.Skip
, AllowTrailingCommas = true
, DictionaryKeyPolicy = JsonNamingPolicy.CamelCase
, PropertyNamingPolicy = JsonNamingPolicy.CamelCase
, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
, NumberHandling = JsonNumberHandling.AllowReadingFromString
, PropertyNameCaseInsensitive = true
};
}
}

View File

@@ -10,20 +10,17 @@ public static class ObjectExtensions
/// <summary>
/// 将一个对象序列化成json文本
/// </summary>
/// <param name="me">指定对象</param>
/// <param name="format">是否格式化</param>
/// <param name="me">me</param>
/// <returns>json文本</returns>
public static string Json(this object me, bool format = false)
public static string Json(this object me)
{
var defaultOptions = default(JsonSerializerOptions).NewJsonSerializerOptions();
defaultOptions.WriteIndented = format;
return Json(me, defaultOptions);
return JsonSerializer.Serialize(me);
}
/// <summary>
/// 将一个对象序列化成json文本
/// </summary>
/// <param name="me">指定对象</param>
/// <param name="me">me</param>
/// <param name="options">序列化选项</param>
/// <returns>json文本</returns>
public static string Json(this object me, JsonSerializerOptions options)

View File

@@ -11,15 +11,13 @@ namespace NSExt.Extensions;
/// <summary>
/// StringExtensions
/// </summary>
#pragma warning disable CodeLinesAnalyzer
public static class StringExtensions
{
private static readonly JsonSerializerOptions _defaultJsonSerializerOptions
= default(JsonSerializerOptions).NewJsonSerializerOptions();
/// <summary>
/// aes加密
/// </summary>
/// <param name="me">要加密的串</param>
/// <param name="me">me</param>
/// <param name="key">密钥</param>
public static string Aes(this string me, string key)
{
@@ -36,7 +34,7 @@ public static class StringExtensions
/// <summary>
/// aes解密
/// </summary>
/// <param name="me">要加密的串</param>
/// <param name="me">me</param>
/// <param name="key">密钥</param>
public static string AesDe(this string me, string key)
{
@@ -53,7 +51,7 @@ public static class StringExtensions
/// <summary>
/// base64编码
/// </summary>
/// <param name="me">待base64编码的字符串</param>
/// <param name="me">me</param>
/// <param name="e">字符串的编码方式</param>
/// <returns>编码后的base64字符串</returns>
public static string Base64(this string me, Encoding e)
@@ -64,7 +62,7 @@ public static class StringExtensions
/// <summary>
/// base64解码
/// </summary>
/// <param name="me">待解码的字符串</param>
/// <param name="me">me</param>
/// <returns>解码后的原始字节数组</returns>
public static byte[] Base64De(this string me)
{
@@ -74,7 +72,7 @@ public static class StringExtensions
/// <summary>
/// base64解码
/// </summary>
/// <param name="me">待解码的字符串</param>
/// <param name="me">me</param>
/// <param name="e">字符串的编码方式</param>
/// <returns>解码后的原始字符串</returns>
public static string Base64De(this string me, Encoding e)
@@ -103,7 +101,7 @@ public static class StringExtensions
/// <summary>
/// 将字符串转换成日期对象
/// </summary>
/// <param name="me">待转换字符串</param>
/// <param name="me">me</param>
/// <returns>转换后的日期对象</returns>
public static DateTime DateTime(this string me)
{
@@ -113,7 +111,7 @@ public static class StringExtensions
/// <summary>
/// 将字符串转换成日期对象
/// </summary>
/// <param name="me">待转换字符串</param>
/// <param name="me">me</param>
/// <param name="format">日期格式</param>
/// <returns>转换后的日期对象</returns>
public static DateTime DateTimeExact(this string me, string format)
@@ -124,7 +122,7 @@ public static class StringExtensions
/// <summary>
/// 将字符串转换成日期对象
/// </summary>
/// <param name="me">待转换字符串</param>
/// <param name="me">me</param>
/// <param name="format">日期格式</param>
/// <param name="def">转换失败时返回的日期对象</param>
/// <returns>转换后的日期对象</returns>
@@ -138,7 +136,7 @@ public static class StringExtensions
/// <summary>
/// 将字符串转换成日期对象
/// </summary>
/// <param name="me">待转换字符串</param>
/// <param name="me">me</param>
/// <param name="def">转换失败时返回的日期对象</param>
/// <returns>转换后的日期对象</returns>
public static DateTime DateTimeTry(this string me, DateTime def)
@@ -149,7 +147,7 @@ public static class StringExtensions
/// <summary>
/// string to decimal
/// </summary>
/// <param name="me">string</param>
/// <param name="me">me</param>
/// <returns>decimal</returns>
public static decimal Dec(this string me)
{
@@ -159,7 +157,7 @@ public static class StringExtensions
/// <summary>
/// 尝试将字符串转为decimal
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <param name="def">转换失败后返回的默认值</param>
/// <returns>转换后的decimal</returns>
public static decimal DecTry(this string me, decimal def)
@@ -170,7 +168,7 @@ public static class StringExtensions
/// <summary>
/// string to double
/// </summary>
/// <param name="me">string</param>
/// <param name="me">me</param>
/// <returns>Int32</returns>
public static double Double(this string me)
{
@@ -198,7 +196,7 @@ public static class StringExtensions
/// <summary>
/// string to float
/// </summary>
/// <param name="me">string</param>
/// <param name="me">me</param>
/// <returns>Int32</returns>
public static float Float(this string me)
{
@@ -208,7 +206,7 @@ public static class StringExtensions
/// <summary>
/// 将字符串转为guid
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
public static Guid Guid(this string me)
{
return System.Guid.Parse(me);
@@ -217,7 +215,7 @@ public static class StringExtensions
/// <summary>
/// 将字符串转换成guid
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <param name="def">转换失败的返回值</param>
public static Guid Guid(this string me, Guid def)
{
@@ -227,7 +225,7 @@ public static class StringExtensions
/// <summary>
/// 将字符串转换成字节数组形式
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <param name="e">字符串使用的编码</param>
/// <returns>字节数组</returns>
public static byte[] Hex(this string me, Encoding e)
@@ -238,7 +236,7 @@ public static class StringExtensions
/// <summary>
/// 将字符串转换成字节数组形式
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <returns>字节数组</returns>
public static byte[] Hex(this string me)
{
@@ -272,7 +270,7 @@ public static class StringExtensions
/// <summary>
/// 解码html编码
/// </summary>
/// <param name="me">html编码后的字符串</param>
/// <param name="me">me</param>
/// <returns>解码后的原始字符串</returns>
public static string HtmlDe(this string me)
{
@@ -282,7 +280,7 @@ public static class StringExtensions
/// <summary>
/// string to Int32
/// </summary>
/// <param name="me">string</param>
/// <param name="me">me</param>
/// <returns>Int32</returns>
public static int Int32(this string me)
{
@@ -292,7 +290,7 @@ public static class StringExtensions
/// <summary>
/// 尝试将字符串转为int32
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <param name="def">转换失败后返回的默认值</param>
/// <returns>转换后的int32</returns>
public static int Int32Try(this string me, int def)
@@ -303,7 +301,7 @@ public static class StringExtensions
/// <summary>
/// string to Int64
/// </summary>
/// <param name="me">string</param>
/// <param name="me">me</param>
/// <returns>Int64</returns>
public static long Int64(this string me)
{
@@ -313,7 +311,7 @@ public static class StringExtensions
/// <summary>
/// 尝试将字符串转为int64
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <param name="def">转换失败后返回的默认值</param>
/// <returns>转换后的int64</returns>
public static long Int64Try(this string me, long def)
@@ -332,7 +330,7 @@ public static class StringExtensions
/// <summary>
/// 是否base64字符串
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
public static bool IsBase64String(this string me)
{
// 一个合法的Base64有着以下特征
@@ -366,7 +364,7 @@ public static class StringExtensions
/// <summary>
/// 对一个手机号进行掩码处理
/// </summary>
/// <param name="me">手机号</param>
/// <param name="me">me</param>
/// <returns>掩码后的手机号</returns>
public static string MaskMobile(this string me)
{
@@ -376,7 +374,7 @@ public static class StringExtensions
/// <summary>
/// 对一个字符串进行md5hash运算
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <param name="e">字符串使用的编码</param>
/// <returns>hash摘要的16进制文本形式无连字符小写</returns>
public static string Md5(this string me, Encoding e)
@@ -389,7 +387,7 @@ public static class StringExtensions
/// <summary>
/// 判断字符串是否为null或不存在子元素如果为集合对象如果为空返回指定的默认值否则返回字符串本身
/// </summary>
/// <param name="me">指定字符串</param>
/// <param name="me">me</param>
/// <param name="defVal">指定的默认值</param>
/// <returns>如果为空,返回指定的默认值,否则返回字符串本身</returns>
public static string NullOrEmpty(this string me, string defVal)
@@ -408,30 +406,30 @@ public static class StringExtensions
/// <summary>
/// 反序列化一个文件获得指定类型的数据对象
/// </summary>
/// <param name="me">等待反序列化的json文本</param>
/// <param name="me">me</param>
/// <param name="options">序列化选项</param>
/// <returns>反序列化后生成的对象</returns>
public static T Object<T>(this string me, JsonSerializerOptions options = null)
{
return JsonSerializer.Deserialize<T>(me, options ?? _defaultJsonSerializerOptions);
return JsonSerializer.Deserialize<T>(me, options);
}
/// <summary>
/// 反序列化一个文件获得指定类型的数据对象
/// </summary>
/// <param name="me">等待反序列化的json文本</param>
/// <param name="me">me</param>
/// <param name="type">实际类型</param>
/// <param name="options">序列化选项</param>
/// <returns>反序列化后生成的对象</returns>
public static object Object(this string me, Type type, JsonSerializerOptions options = null)
{
return JsonSerializer.Deserialize(me, type, options ?? _defaultJsonSerializerOptions);
return JsonSerializer.Deserialize(me, type, options);
}
/// <summary>
/// 生成密码
/// </summary>
/// <param name="me">密码原文</param>
/// <param name="me">me</param>
/// <returns>密文</returns>
public static string Pwd(this string me)
{
@@ -441,7 +439,7 @@ public static class StringExtensions
/// <summary>
/// 移除字符串中的html标签
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <returns>处理之后的字符串</returns>
public static string RemoveHtmlTag(this string me)
{
@@ -459,7 +457,7 @@ public static class StringExtensions
/// <summary>
/// 对一个字符串进行sha1 hash运算
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <param name="e">字符串使用的编码</param>
/// <returns>hash摘要的16进制文本形式无连字符小写</returns>
public static string Sha1(this string me, Encoding e)
@@ -521,7 +519,7 @@ public static class StringExtensions
/// <summary>
/// url编码
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <returns>url编码后的字符串</returns>
public static string Url(this string me)
{
@@ -531,7 +529,7 @@ public static class StringExtensions
/// <summary>
/// 解码url编码
/// </summary>
/// <param name="me">url编码后的字符串</param>
/// <param name="me">me</param>
/// <returns>解码后的原始字符串</returns>
public static string UrlDe(this string me)
{
@@ -541,7 +539,7 @@ public static class StringExtensions
/// <summary>
/// MD5 hmac编码
/// </summary>
/// <param name="me">字符串</param>
/// <param name="me">me</param>
/// <param name="key">密钥</param>
/// <param name="e">字符串使用的编码</param>
/// <returns>hash摘要的16进制文本形式无连字符小写</returns>
@@ -552,4 +550,5 @@ public static class StringExtensions
.Replace("-", string.Empty)
.ToLower(CultureInfo.CurrentCulture);
}
}
}
#pragma warning restore CodeLinesAnalyzer

View File

@@ -1,17 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<Import Project="../CodeQuality.props"/>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0"/>
<PackageReference Include="MinVer" Version="4.3.0-beta.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<None Include="../logo.png" Pack="true" PackagePath=""/>
</ItemGroup>
<Import Project="../CodeQuality.props" />
</Project>