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