diff --git a/.editorconfig b/.editorconfig index 2127d46..d54638d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,15 +13,20 @@ trim_trailing_whitespace = true [*.cs] dotnet_analyzer_diagnostic.severity = warning dotnet_diagnostic.CA1707.severity = none -dotnet_diagnostic.CA1720.severity = none +dotnet_diagnostic.CA1716.severity = none +dotnet_diagnostic.CA1848.severity = none +dotnet_diagnostic.CA2254.severity = none dotnet_diagnostic.CA5350.severity = none dotnet_diagnostic.CA5351.severity = none +dotnet_diagnostic.IDE0005.severity = none dotnet_diagnostic.IDE0008.severity = none +dotnet_diagnostic.IDE0010.severity = none dotnet_diagnostic.IDE0017.severity = none dotnet_diagnostic.IDE0048.severity = none dotnet_diagnostic.IDE0055.severity = none dotnet_diagnostic.IDE0058.severity = none dotnet_diagnostic.IDE0160.severity = none +dotnet_diagnostic.SYSLIB1045.severity = none # ReSharper properties diff --git a/.gitignore b/.gitignore index 85e7030..9865879 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,7 @@ x86/ bld/ [Bb]in/ [Oo]bj/ -[Ll]og/ +# [Ll]og/ [Ll]ogs/ # Visual Studio 2015/2017 cache/options directory @@ -399,6 +399,6 @@ FodyWeavers.xsd .idea/ # User Define -build/ +dist/ nuget.config *.[Dd]esigner.cs \ No newline at end of file diff --git a/CodeCleanupOnSave.csx b/CodeCleanupOnSave.csx index d0c39a5..7dcefb9 100644 --- a/CodeCleanupOnSave.csx +++ b/CodeCleanupOnSave.csx @@ -1,16 +1,27 @@ +#r "nuget: Newtonsoft.Json, 13.0.0" + +using System.Xml; +using System.IO; +using Newtonsoft.Json.Linq; + var path = Directory.GetFiles(@".idea", "workspace.xml", SearchOption.AllDirectories).First(); - const string findStr = """ -"keyToString": { -"""; - const string replaceStr = """ -"keyToString": { - "rider.code.cleanup.on.save": "true", -"""; - var content = File.ReadAllText(path); - if(content.Contains("rider.code.cleanup.on.save")){ - Console.WriteLine("alreay added"); - return; - } - content = content.Replace(findStr, replaceStr); - Console.WriteLine(content); - File.WriteAllText(path, content); \ No newline at end of file +XmlDocument xdoc = new XmlDocument(); +using(var fs = File.Open(path, FileMode.Open)){ + xdoc.Load(fs); + fs.Seek(0, SeekOrigin.Begin); + var propertiesComponent = xdoc.SelectSingleNode("""//component[@name="PropertiesComponent"]"""); + var jsonStr = propertiesComponent.InnerText; + var jsonObj = JObject.Parse(jsonStr); + var keyToStringObj = jsonObj["keyToString"] as JObject; + if (keyToStringObj.ContainsKey("rider.code.cleanup.on.save")) return; + + keyToStringObj.Add(new JProperty("rider.code.cleanup.on.save", "true")); + var newNode = xdoc.CreateCDataSection(jsonObj.ToString()); + propertiesComponent.InnerText=string.Empty; + propertiesComponent.AppendChild(newNode); + var settings = new XmlWriterSettings { Indent = true }; + using(var writer = XmlWriter.Create(fs, settings)){ + xdoc.WriteTo(writer); + } + +} \ No newline at end of file diff --git a/CodeQuality.props b/CodeQuality.props index df0775d..b60e4ed 100644 --- a/CodeQuality.props +++ b/CodeQuality.props @@ -13,5 +13,9 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index 11cee10..dacae8f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,22 +1,35 @@ - enable - ../dist - ../dist - $(BaseOutputPath)/$(MSBuildProjectName)/bin - $(BaseIntermediateOutputPath)/$(MSBuildProjectName)/obj - $(BaseIntermediateOutputPath)/$(MSBuildProjectName)/obj + ../key.snk nsnail - NSExt - © 2006-2022 nsnail - https://github.com/nsnail/ns-ext.git - true - true + ../dist + ../dist + © 2006-2023 nsnail + false + A .NET extension function library true - Git + true + false + true + true + enable true - snupkg + $(BaseIntermediateOutputPath)/$(MSBuildProjectName)/obj + true + $(BaseIntermediateOutputPath)/$(MSBuildProjectName)/obj + $(BaseOutputPath)/$(MSBuildProjectName)/bin + logo.png MIT https://github.com/nsnail/ns-ext.git + extensions + NSExt + true + git + https://github.com/nsnail/ns-ext.git + true + snupkg + net7.0 + net7.0 + $(AssemblyName) \ No newline at end of file diff --git a/NSExt.sln b/NSExt.sln index d4e6c45..ff0d311 100644 --- a/NSExt.sln +++ b/NSExt.sln @@ -17,14 +17,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "meta", "meta", "{85E669CB-F CodeCleanupOnSave.csx = CodeCleanupOnSave.csx CodeQuality.props = CodeQuality.props Directory.Build.props = Directory.Build.props - dot.sln.DotSettings = dot.sln.DotSettings dotnet-tools.json = dotnet-tools.json git-clean.cmd = git-clean.cmd global.json = global.json ImageOptimize.csx = ImageOptimize.csx LICENSE = LICENSE - push2nuget.ps1 = push2nuget.ps1 + NSExt.sln.DotSettings = NSExt.sln.DotSettings + NSExt.sln.DotSettings.user = NSExt.sln.DotSettings.user README.md = README.md + README.zh-CN.md = README.zh-CN.md stylecop.json = stylecop.json StyleCopAnalyzers.ruleset = StyleCopAnalyzers.ruleset EndProjectSection diff --git a/NSExt.sln.DotSettings b/NSExt.sln.DotSettings index aebd72b..7c44752 100644 --- a/NSExt.sln.DotSettings +++ b/NSExt.sln.DotSettings @@ -1,4 +1,7 @@ + DO_NOT_SHOW + DO_NOT_SHOW + NEVER False 1 1 @@ -12,7 +15,6 @@ <Policy Inspect="True" Prefix="_" Suffix="" Style="AA_BB" /> <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <?xml version="1.0" encoding="utf-16"?> <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns"> <TypePattern> diff --git a/StyleCopAnalyzers.ruleset b/StyleCopAnalyzers.ruleset index f76edfe..d318627 100644 --- a/StyleCopAnalyzers.ruleset +++ b/StyleCopAnalyzers.ruleset @@ -13,7 +13,7 @@ - + @@ -73,7 +73,7 @@ - + @@ -115,7 +115,7 @@ - + @@ -125,12 +125,12 @@ - + - + @@ -143,7 +143,7 @@ - + @@ -173,7 +173,7 @@ - + @@ -187,13 +187,13 @@ - + - + diff --git a/build.cake b/build.cake index 1c37c0b..3db847f 100644 --- a/build.cake +++ b/build.cake @@ -1,6 +1,6 @@ var target = Argument("target", "Default"); var configuration = Argument("configuration", "Release"); -var pkgOutPath = $"./dist/NSExt/pkg/{configuration}"; +var framework = Argument("framework", "net7.0"); //////////////////////////////////////////////////////////////// // Tasks @@ -8,123 +8,108 @@ var pkgOutPath = $"./dist/NSExt/pkg/{configuration}"; Task("Clean") .Does(context => { - context.CleanDirectory(pkgOutPath); + context.CleanDirectory("./dist"); }); Task("Build") .IsDependentOn("Clean") .Does(context => { - DotNetBuild("./NSExt.sln", new DotNetBuildSettings { + DotNetPublish("./src/NSExt.csproj", new DotNetPublishSettings { Configuration = configuration, - NoIncremental = context.HasArgument("rebuild"), - MSBuildSettings = new DotNetMSBuildSettings() - .TreatAllWarningsAs(MSBuildTreatAllWarningsAs.Error) + Framework = framework, }); }); -Task("Test") - .IsDependentOn("Build") - .Does(context => -{ - DotNetTest("./test/Spectre.Console.Tests/Spectre.Console.Tests.csproj", new DotNetTestSettings { - Configuration = configuration, - NoRestore = true, - NoBuild = true, - }); +// Task("Test") +// .IsDependentOn("Build") +// .Does(context => +// { +// DotNetTest("./test/Spectre.Console.Tests/Spectre.Console.Tests.csproj", new DotNetTestSettings { +// Configuration = configuration, +// NoRestore = true, +// NoBuild = true, +// }); +// +// DotNetTest("./test/Spectre.Console.Cli.Tests/Spectre.Console.Cli.Tests.csproj", new DotNetTestSettings { +// Configuration = configuration, +// NoRestore = true, +// NoBuild = true, +// }); +// +// DotNetTest("./test/Spectre.Console.Analyzer.Tests/Spectre.Console.Analyzer.Tests.csproj", new DotNetTestSettings { +// Configuration = configuration, +// NoRestore = true, +// NoBuild = true, +// }); +// }); - DotNetTest("./test/Spectre.Console.Cli.Tests/Spectre.Console.Cli.Tests.csproj", new DotNetTestSettings { - Configuration = configuration, - NoRestore = true, - NoBuild = true, - }); - DotNetTest("./test/Spectre.Console.Analyzer.Tests/Spectre.Console.Analyzer.Tests.csproj", new DotNetTestSettings { - Configuration = configuration, - NoRestore = true, - NoBuild = true, - }); -}); - -Task("Package") - .IsDependentOn("Build") - .Does(context => -{ - context.DotNetPack("./NSExt.sln", new DotNetPackSettings { - Configuration = configuration, - NoRestore = true, - NoBuild = true, - OutputDirectory = pkgOutPath, - MSBuildSettings = new DotNetMSBuildSettings() - .TreatAllWarningsAs(MSBuildTreatAllWarningsAs.Error) - }); -}); - -Task("Publish-GitHub") - .WithCriteria(ctx => BuildSystem.IsRunningOnGitHubActions, "Not running on GitHub Actions") - .IsDependentOn("Package") - .Does(context => -{ - var apiKey = Argument("github-key", null); - if(string.IsNullOrWhiteSpace(apiKey)) { - throw new CakeException("No GitHub API key was provided."); - } - - // Publish to GitHub Packages - var exitCode = 0; - foreach(var file in context.GetFiles("./.artifacts/*.nupkg")) - { - context.Information("Publishing {0}...", file.GetFilename().FullPath); - exitCode += StartProcess("dotnet", - new ProcessSettings { - Arguments = new ProcessArgumentBuilder() - .Append("gpr") - .Append("push") - .AppendQuoted(file.FullPath) - .AppendSwitchSecret("-k", " ", apiKey) - } - ); - } - - if(exitCode != 0) - { - throw new CakeException("Could not push GitHub packages."); - } -}); +// Task("Publish-GitHub") +// .WithCriteria(ctx => BuildSystem.IsRunningOnGitHubActions, "Not running on GitHub Actions") +// //.IsDependentOn("Package") +// .Does(context => +// { +// var apiKey = Argument("github-key", null); +// if(string.IsNullOrWhiteSpace(apiKey)) { +// throw new CakeException("No GitHub API key was provided."); +// } +// +// // Publish to GitHub Packages +// var exitCode = 0; +// foreach(var file in context.GetFiles("./.artifacts/*.nupkg")) +// { +// context.Information("Publishing {0}...", file.GetFilename().FullPath); +// exitCode += StartProcess("dotnet", +// new ProcessSettings { +// Arguments = new ProcessArgumentBuilder() +// .Append("gpr") +// .Append("push") +// .AppendQuoted(file.FullPath) +// .AppendSwitchSecret("-k", " ", apiKey) +// } +// ); +// } +// +// if(exitCode != 0) +// { +// throw new CakeException("Could not push GitHub packages."); +// } +// }); Task("Publish-NuGet") - // .WithCriteria(ctx => BuildSystem.IsRunningOnGitHubActions, "Not running on GitHub Actions") - .IsDependentOn("Package") - .Does(context => + //.WithCriteria(ctx => BuildSystem.IsRunningOnGitHubActions, "Not running on GitHub Actions") + .IsDependentOn("Build") + .Does(context => { - var apiKey = Argument("nuget-key", null); - if(string.IsNullOrWhiteSpace(apiKey)) { - throw new CakeException("No NuGet API key was provided."); - } + var apiKey = Argument("nuget-key", null); + if(string.IsNullOrWhiteSpace(apiKey)) { + throw new CakeException("No NuGet API key was provided."); + } - // Publish to GitHub Packages - foreach(var file in context.GetFiles($"{pkgOutPath}/*.*nupkg")) - { - context.Information("Publishing {0}...", file.GetFilename().FullPath); - DotNetNuGetPush(file.FullPath, new DotNetNuGetPushSettings - { - Source = "https://api.nuget.org/v3/index.json", - ApiKey = apiKey, - SkipDuplicate = true - }); - } + // Publish to GitHub Packages + foreach(var file in context.GetFiles("./dist/NSExt/bin/*.*")) + { + context.Information("Publishing {0}...", file.GetFilename().FullPath); + DotNetNuGetPush(file.FullPath, new DotNetNuGetPushSettings + { + Source = "https://api.nuget.org/v3/index.json", + ApiKey = apiKey, + SkipDuplicate = true + }); + } }); //////////////////////////////////////////////////////////////// // Targets Task("Publish") - //.IsDependentOn("Publish-GitHub") +// .IsDependentOn("Publish-GitHub") .IsDependentOn("Publish-NuGet"); Task("Default") - .IsDependentOn("Package"); + .IsDependentOn("Build"); //////////////////////////////////////////////////////////////// // Execution diff --git a/git-clean.cmd b/git-clean.cmd index 5f7b39a..07b006c 100644 --- a/git-clean.cmd +++ b/git-clean.cmd @@ -1 +1,2 @@ -git reset --hard | git clean -d -fx . \ No newline at end of file +git reset --hard +git clean -d -fx . \ No newline at end of file diff --git a/key.snk b/key.snk new file mode 100644 index 0000000..aac3fbe Binary files /dev/null and b/key.snk differ diff --git a/logo.png b/logo.png new file mode 100644 index 0000000..77638c1 Binary files /dev/null and b/logo.png differ diff --git a/src/Extensions/ByteExtensions.cs b/src/Extensions/ByteExtensions.cs index fcf562c..08ca075 100644 --- a/src/Extensions/ByteExtensions.cs +++ b/src/Extensions/ByteExtensions.cs @@ -8,7 +8,7 @@ public static class ByteExtensions /// /// base64编码 /// - /// 待编码的字节数组 + /// me /// 编码后的base64字符串 public static string Base64(this byte[] me) { @@ -18,7 +18,7 @@ public static class ByteExtensions /// /// 将字节数组解码成字符串 /// - /// 字节数组 + /// me /// 字符串使用的编码方式 /// 解码后的原始字符串 public static string HexDe(this byte[] me, Encoding e) @@ -29,7 +29,7 @@ public static class ByteExtensions /// /// 将字节数组解码成字符串 /// - /// 字节数组 + /// me /// 解码后的原始字符串 public static string HexDe(this byte[] me) { @@ -43,8 +43,8 @@ public static class ByteExtensions /// 是否大写 /// 字节间分隔符 /// 分隔符跳跃字节数 - public static string String(this IEnumerable me, bool upperCase = true, string splitShar = "" - , int splitInterval = 1) + public static string Str(this IEnumerable me, bool upperCase = true, string splitShar = "" + , int splitInterval = 1) { var sb = new StringBuilder(); var i = 0; diff --git a/src/Extensions/DateTimeExtensions.cs b/src/Extensions/DateTimeExtensions.cs index ac8cb43..75065c7 100644 --- a/src/Extensions/DateTimeExtensions.cs +++ b/src/Extensions/DateTimeExtensions.cs @@ -13,7 +13,7 @@ public static class DateTimeExtensions /// /// 将一个过去时间对象与当前时间相减转换成“xx以前”的字符串, 如2秒以前, 3天以前 /// - /// 时间对象 + /// me /// 字符串 public static string TimeAgo(this DateTime me) { @@ -26,7 +26,7 @@ public static class DateTimeExtensions /// /// 指定时间的世界协调时的unix时间戳形式 /// - /// 指定时间 + /// me /// unix时间戳 public static long TimeUnixUtc(this DateTime me) { diff --git a/src/Extensions/DbCommandExtensions.cs b/src/Extensions/DbCommandExtensions.cs index e9f8afe..d72fa49 100644 --- a/src/Extensions/DbCommandExtensions.cs +++ b/src/Extensions/DbCommandExtensions.cs @@ -1,7 +1,7 @@ namespace NSExt.Extensions; /// -/// DbCommandExtensions +/// DbCommandExtensions /// public static class DbCommandExtensions { @@ -10,22 +10,21 @@ public static class DbCommandExtensions /// 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()) }; } diff --git a/src/Extensions/DecimalExtensions.cs b/src/Extensions/DecimalExtensions.cs index 6dfd32a..fb9eee6 100644 --- a/src/Extensions/DecimalExtensions.cs +++ b/src/Extensions/DecimalExtensions.cs @@ -8,7 +8,7 @@ public static class DecimalExtensions /// /// 四舍五入后的近似值 /// - /// 数字 + /// me /// 小数点位数 /// 处理后的值 public static decimal Round(this decimal me, int place) diff --git a/src/Extensions/EnumerableExtensions.cs b/src/Extensions/EnumerableExtensions.cs index ebebe01..c6496c8 100644 --- a/src/Extensions/EnumerableExtensions.cs +++ b/src/Extensions/EnumerableExtensions.cs @@ -17,7 +17,7 @@ public static class EnumerableExtensions /// 判断对象是否为null或不存在子元素(如果为集合对象) /// /// 对象类型 - /// 指定对象 + /// me /// 空则返回true public static bool NullOrEmpty(this IEnumerable me) { diff --git a/src/Extensions/GenericExtensions.cs b/src/Extensions/GenericExtensions.cs index 62f4d6f..8015c1c 100644 --- a/src/Extensions/GenericExtensions.cs +++ b/src/Extensions/GenericExtensions.cs @@ -9,7 +9,7 @@ public static class GenericExtensions /// 从指定的对象拷贝属性 /// /// 对象类型 - /// 拷贝目标 + /// me /// 拷贝来源 /// 需要处理的属性名 /// True包含,false排除 diff --git a/src/Extensions/IntExtensions.cs b/src/Extensions/IntExtensions.cs index cce825d..9729249 100644 --- a/src/Extensions/IntExtensions.cs +++ b/src/Extensions/IntExtensions.cs @@ -17,7 +17,7 @@ public static class IntExtensions /// /// 生成随机数 /// - /// 大于等于[0],小于[1] + /// me public static int Rand(this int[] me) { return new Random(Guid.NewGuid().GetHashCode()).Next(me[0], me[1]); diff --git a/src/Extensions/JsonSerializerOptionsExtensions.cs b/src/Extensions/JsonSerializerOptionsExtensions.cs deleted file mode 100644 index d17bf51..0000000 --- a/src/Extensions/JsonSerializerOptionsExtensions.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Text.Encodings.Web; -using System.Text.Json; -using System.Text.Json.Serialization; - -namespace NSExt.Extensions; - -/// -/// JsonSerializerOptionsExtensions -/// -public static class JsonSerializerOptionsExtensions -{ - /// - /// NewJsonSerializerOptions - /// - 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 - }; - } -} \ No newline at end of file diff --git a/src/Extensions/ObjectExtensions.cs b/src/Extensions/ObjectExtensions.cs index 77b45bf..99c5dcc 100644 --- a/src/Extensions/ObjectExtensions.cs +++ b/src/Extensions/ObjectExtensions.cs @@ -10,20 +10,17 @@ public static class ObjectExtensions /// /// 将一个对象序列化成json文本 /// - /// 指定对象 - /// 是否格式化 + /// me /// json文本 - 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); } /// /// 将一个对象序列化成json文本 /// - /// 指定对象 + /// me /// 序列化选项 /// json文本 public static string Json(this object me, JsonSerializerOptions options) diff --git a/src/Extensions/StringExtensions.cs b/src/Extensions/StringExtensions.cs index 221ab85..7c3d583 100644 --- a/src/Extensions/StringExtensions.cs +++ b/src/Extensions/StringExtensions.cs @@ -11,15 +11,13 @@ namespace NSExt.Extensions; /// /// StringExtensions /// +#pragma warning disable CodeLinesAnalyzer public static class StringExtensions { - private static readonly JsonSerializerOptions _defaultJsonSerializerOptions - = default(JsonSerializerOptions).NewJsonSerializerOptions(); - /// /// aes加密 /// - /// 要加密的串 + /// me /// 密钥 public static string Aes(this string me, string key) { @@ -36,7 +34,7 @@ public static class StringExtensions /// /// aes解密 /// - /// 要加密的串 + /// me /// 密钥 public static string AesDe(this string me, string key) { @@ -53,7 +51,7 @@ public static class StringExtensions /// /// base64编码 /// - /// 待base64编码的字符串 + /// me /// 字符串的编码方式 /// 编码后的base64字符串 public static string Base64(this string me, Encoding e) @@ -64,7 +62,7 @@ public static class StringExtensions /// /// base64解码 /// - /// 待解码的字符串 + /// me /// 解码后的原始字节数组 public static byte[] Base64De(this string me) { @@ -74,7 +72,7 @@ public static class StringExtensions /// /// base64解码 /// - /// 待解码的字符串 + /// me /// 字符串的编码方式 /// 解码后的原始字符串 public static string Base64De(this string me, Encoding e) @@ -103,7 +101,7 @@ public static class StringExtensions /// /// 将字符串转换成日期对象 /// - /// 待转换字符串 + /// me /// 转换后的日期对象 public static DateTime DateTime(this string me) { @@ -113,7 +111,7 @@ public static class StringExtensions /// /// 将字符串转换成日期对象 /// - /// 待转换字符串 + /// me /// 日期格式 /// 转换后的日期对象 public static DateTime DateTimeExact(this string me, string format) @@ -124,7 +122,7 @@ public static class StringExtensions /// /// 将字符串转换成日期对象 /// - /// 待转换字符串 + /// me /// 日期格式 /// 转换失败时返回的日期对象 /// 转换后的日期对象 @@ -138,7 +136,7 @@ public static class StringExtensions /// /// 将字符串转换成日期对象 /// - /// 待转换字符串 + /// me /// 转换失败时返回的日期对象 /// 转换后的日期对象 public static DateTime DateTimeTry(this string me, DateTime def) @@ -149,7 +147,7 @@ public static class StringExtensions /// /// string to decimal /// - /// string + /// me /// decimal public static decimal Dec(this string me) { @@ -159,7 +157,7 @@ public static class StringExtensions /// /// 尝试将字符串转为decimal /// - /// 字符串 + /// me /// 转换失败后返回的默认值 /// 转换后的decimal public static decimal DecTry(this string me, decimal def) @@ -170,7 +168,7 @@ public static class StringExtensions /// /// string to double /// - /// string + /// me /// Int32 public static double Double(this string me) { @@ -198,7 +196,7 @@ public static class StringExtensions /// /// string to float /// - /// string + /// me /// Int32 public static float Float(this string me) { @@ -208,7 +206,7 @@ public static class StringExtensions /// /// 将字符串转为guid /// - /// 字符串 + /// me public static Guid Guid(this string me) { return System.Guid.Parse(me); @@ -217,7 +215,7 @@ public static class StringExtensions /// /// 将字符串转换成guid /// - /// 字符串 + /// me /// 转换失败的返回值 public static Guid Guid(this string me, Guid def) { @@ -227,7 +225,7 @@ public static class StringExtensions /// /// 将字符串转换成字节数组形式 /// - /// 字符串 + /// me /// 字符串使用的编码 /// 字节数组 public static byte[] Hex(this string me, Encoding e) @@ -238,7 +236,7 @@ public static class StringExtensions /// /// 将字符串转换成字节数组形式 /// - /// 字符串 + /// me /// 字节数组 public static byte[] Hex(this string me) { @@ -272,7 +270,7 @@ public static class StringExtensions /// /// 解码html编码 /// - /// html编码后的字符串 + /// me /// 解码后的原始字符串 public static string HtmlDe(this string me) { @@ -282,7 +280,7 @@ public static class StringExtensions /// /// string to Int32 /// - /// string + /// me /// Int32 public static int Int32(this string me) { @@ -292,7 +290,7 @@ public static class StringExtensions /// /// 尝试将字符串转为int32 /// - /// 字符串 + /// me /// 转换失败后返回的默认值 /// 转换后的int32 public static int Int32Try(this string me, int def) @@ -303,7 +301,7 @@ public static class StringExtensions /// /// string to Int64 /// - /// string + /// me /// Int64 public static long Int64(this string me) { @@ -313,7 +311,7 @@ public static class StringExtensions /// /// 尝试将字符串转为int64 /// - /// 字符串 + /// me /// 转换失败后返回的默认值 /// 转换后的int64 public static long Int64Try(this string me, long def) @@ -332,7 +330,7 @@ public static class StringExtensions /// /// 是否base64字符串 /// - /// 字符串 + /// me public static bool IsBase64String(this string me) { // 一个合法的Base64,有着以下特征: @@ -366,7 +364,7 @@ public static class StringExtensions /// /// 对一个手机号进行掩码处理 /// - /// 手机号 + /// me /// 掩码后的手机号 public static string MaskMobile(this string me) { @@ -376,7 +374,7 @@ public static class StringExtensions /// /// 对一个字符串进行md5hash运算 /// - /// 字符串 + /// me /// 字符串使用的编码 /// hash摘要的16进制文本形式(无连字符小写) public static string Md5(this string me, Encoding e) @@ -389,7 +387,7 @@ public static class StringExtensions /// /// 判断字符串是否为null或不存在子元素(如果为集合对象);如果为空,返回指定的默认值,否则返回字符串本身 /// - /// 指定字符串 + /// me /// 指定的默认值 /// 如果为空,返回指定的默认值,否则返回字符串本身 public static string NullOrEmpty(this string me, string defVal) @@ -408,30 +406,30 @@ public static class StringExtensions /// /// 反序列化一个文件获得指定类型的数据对象 /// - /// 等待反序列化的json文本 + /// me /// 序列化选项 /// 反序列化后生成的对象 public static T Object(this string me, JsonSerializerOptions options = null) { - return JsonSerializer.Deserialize(me, options ?? _defaultJsonSerializerOptions); + return JsonSerializer.Deserialize(me, options); } /// /// 反序列化一个文件获得指定类型的数据对象 /// - /// 等待反序列化的json文本 + /// me /// 实际类型 /// 序列化选项 /// 反序列化后生成的对象 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); } /// /// 生成密码 /// - /// 密码原文 + /// me /// 密文 public static string Pwd(this string me) { @@ -441,7 +439,7 @@ public static class StringExtensions /// /// 移除字符串中的html标签 /// - /// 字符串 + /// me /// 处理之后的字符串 public static string RemoveHtmlTag(this string me) { @@ -459,7 +457,7 @@ public static class StringExtensions /// /// 对一个字符串进行sha1 hash运算 /// - /// 字符串 + /// me /// 字符串使用的编码 /// hash摘要的16进制文本形式(无连字符小写) public static string Sha1(this string me, Encoding e) @@ -521,7 +519,7 @@ public static class StringExtensions /// /// url编码 /// - /// 字符串 + /// me /// url编码后的字符串 public static string Url(this string me) { @@ -531,7 +529,7 @@ public static class StringExtensions /// /// 解码url编码 /// - /// url编码后的字符串 + /// me /// 解码后的原始字符串 public static string UrlDe(this string me) { @@ -541,7 +539,7 @@ public static class StringExtensions /// /// MD5 hmac编码 /// - /// 字符串 + /// me /// 密钥 /// 字符串使用的编码 /// hash摘要的16进制文本形式(无连字符小写) @@ -552,4 +550,5 @@ public static class StringExtensions .Replace("-", string.Empty) .ToLower(CultureInfo.CurrentCulture); } -} \ No newline at end of file +} +#pragma warning restore CodeLinesAnalyzer \ No newline at end of file diff --git a/src/NSExt.csproj b/src/NSExt.csproj index f861365..6d268cb 100644 --- a/src/NSExt.csproj +++ b/src/NSExt.csproj @@ -1,17 +1,15 @@ - - - net7.0 - true - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive + + + - \ No newline at end of file