XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension

【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension

change-EscapeConverter能够胜任更多的任务了,功能更加直接,旧版已迁移至MultiEscapeConverter

0b0bce8
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

4 个文件 +103 -59
Modified XFEExtension.NetCore.Test/Program.cs +16 -23
@@ -1,6 +1,5 @@
1 using PDDShopManagementSystem.AdminTool.Model;
2 using XFEExtension.NetCore.StringExtension.Json;
3 using XFEExtension.NetCore.XFEChatGPT;
1 using XFEExtension.NetCore.XFEChatGPT;
2 using XFEExtension.NetCore.XFETransform;
4 3
5 4 internal class Program
6 5 {
@@ -13,26 +12,20 @@ internal class Program
13 12 //client.DefaultRequestHeaders.Add("Origin", "https://www.piyao.org.cn");
14 13 //client.DefaultRequestHeaders.Add("Referer", "https://www.piyao.org.cn/");
15 14 //QueryableJsonNode jsonNode = @"C:\Users\XFEstudio\Desktop\新建 文本文档.txt".ReadOut()!;
16 var list = new List<UserInfo>();
17 list.Add(new()
18 {
19 ShopID = "cece",
20 RecentShopName = "cececececec",
21 EndDateTime = DateTime.Now,
22 SessionID = Guid.NewGuid().ToString(),
23 CurrentIpAddress = "127.0.0.1",
24 Banned = false
25 });
26 list.Add(new()
27 {
28 ShopID = "cecead11",
29 RecentShopName = "adadwdawd",
30 EndDateTime = DateTime.Now,
31 SessionID = Guid.NewGuid().ToString(),
32 CurrentIpAddress = "127.0.0.1",
33 Banned = false
34 });
35 Console.WriteLine(list.ToJson(true));
15 var originalText = """
16 测啊是
17 测\\n测啊
18 啊啊\n你是
19 """;
20 Console.WriteLine(originalText);
21 var enterConverter = new EscapeConverter("\n", "\\n", "n", "\\");
22 var rConverter = new EscapeConverter("\r", "\\r", "r", "\\");
23 var convertedText = enterConverter.Convert(originalText);
24 convertedText = rConverter.Convert(convertedText);
25 Console.WriteLine(convertedText);
26 var enterInvertText = enterConverter.Inverse(convertedText);
27 enterInvertText = rConverter.Inverse(enterInvertText);
28 Console.WriteLine(enterInvertText);
36 29 }
37 30
38 31 private static void XFEChatGPT_XFEChatGPTMessageReceived(object? sender, XFEExtension.NetCore.XFEChatGPT.ChatGPTInnerClass.HelperClass.MemorableGPTMessageReceivedEventArgs e)
Modified XFEExtension.NetCore/XFEExtension.NetCore.csproj +3 -4
@@ -5,7 +5,7 @@
5 5 <ImplicitUsings>enable</ImplicitUsings>
6 6 <Nullable>enable</Nullable>
7 7 <GenerateDocumentationFile>True</GenerateDocumentationFile>
8 <Version>3.2.4</Version>
8 <Version>3.2.5</Version>
9 9 <Title>XFEExtension</Title>
10 10 <RepositoryUrl>https://github.com/XFEstudio/XFEExtension</RepositoryUrl>
11 11 <AnalysisLevel>latest</AnalysisLevel>
@@ -21,12 +21,11 @@
21 21 <PackageReleaseNotes>
22 22 ## 调整
23 23
24 修复:JsonTransformer的现在可以正常处理结构类
25 调整:ToJson方法新增一个布尔值参数,指定是否使用格式化的Json转换器
24 调整:现在EscapeConverter能够胜任更多的任务了,功能更加直接,旧版已迁移至MultiEscapeConverter
26 25
27 26 ## 新增
28 27
29 添加:新增标准化的JsonTransformer,旧的JsonTransformer现在迁移至:FormattedJsonTransformer
28
30 29
31 30 ## 严重
32 31
Modified XFEExtension.NetCore/XFETransform/EscapeConverter.cs +20 -32
@@ -3,16 +3,28 @@
3 3 /// <summary>
4 4 /// 转义器
5 5 /// </summary>
6 public class EscapeConverter
6 /// <param name="escape">待转义字符</param>
7 /// <param name="startEscapeSymbol">起始转义用符号</param>
8 /// <param name="repeatEscapeSymbol">重复转义字符</param>
9 /// <param name="endEscapeSymbol">结束转义用符号</param>
10 public class EscapeConverter(string escape, string startEscapeSymbol, string repeatEscapeSymbol, string endEscapeSymbol)
7 11 {
8 12 /// <summary>
9 /// 转义用符号
13 /// 起始转义符号
10 14 /// </summary>
11 public string EscapeSymbol { get; set; } = "/";
15 public string StartEscapeSymbol { get; set; } = startEscapeSymbol;
16 /// <summary>
17 /// 重复转义符号
18 /// </summary>
19 public string RepeatEscapeSymbol { get; set; } = repeatEscapeSymbol;
20 /// <summary>
21 /// 结束转义符号
22 /// </summary>
23 public string EndEscapeSymbol { get; set; } = endEscapeSymbol;
12 24 /// <summary>
13 25 /// 待转义的符号
14 26 /// </summary>
15 public string[] Escapes { get; set; }
27 public string Escape { get; set; } = escape;
16 28 /// <summary>
17 29 /// 转义(生成转义后文本)
18 30 /// </summary>
@@ -21,10 +33,7 @@ public class EscapeConverter
21 33 public string Convert(string str)
22 34 {
23 35 str = ConvertEscapeSymbol(str);
24 foreach (string escape in Escapes)
25 {
26 str = str.Replace(escape, $"{EscapeSymbol}{escape}");
27 }
36 str = str.Replace(Escape, $"{StartEscapeSymbol}{RepeatEscapeSymbol}{EndEscapeSymbol}");
28 37 return str;
29 38 }
30 39 /// <summary>
@@ -34,31 +43,10 @@ public class EscapeConverter
34 43 /// <returns></returns>
35 44 public string Inverse(string str)
36 45 {
37 foreach (string escape in Escapes)
38 {
39 str = str.Replace($"{EscapeSymbol}{escape}", escape);
40 }
46 str = str.Replace($"{StartEscapeSymbol}{RepeatEscapeSymbol}{EndEscapeSymbol}", Escape);
41 47 str = InverseEscapeSymbol(str);
42 48 return str;
43 49 }
44 private string ConvertEscapeSymbol(string str) => str.Replace(EscapeSymbol, $"{EscapeSymbol}{EscapeSymbol}");
45 private string InverseEscapeSymbol(string str) => str.Replace($"{EscapeSymbol}{EscapeSymbol}", EscapeSymbol);
46 /// <summary>
47 /// 转义器
48 /// </summary>
49 /// <param name="escapes">待转义字符</param>
50 public EscapeConverter(params string[] escapes)
51 {
52 Escapes = escapes;
53 }
54 /// <summary>
55 /// 转义器
56 /// </summary>
57 /// <param name="escapeSymbol">转义用符号</param>
58 /// <param name="escapes">待转义字符</param>
59 public EscapeConverter(string escapeSymbol, params string[] escapes)
60 {
61 EscapeSymbol = escapeSymbol;
62 Escapes = escapes;
63 }
50 private string ConvertEscapeSymbol(string str) => str.Replace($"{StartEscapeSymbol}{RepeatEscapeSymbol}", $"{StartEscapeSymbol}{RepeatEscapeSymbol}{RepeatEscapeSymbol}");
51 private string InverseEscapeSymbol(string str) => str.Replace($"{StartEscapeSymbol}{RepeatEscapeSymbol}{RepeatEscapeSymbol}", $"{StartEscapeSymbol}{RepeatEscapeSymbol}");
64 52 }
Added XFEExtension.NetCore/XFETransform/MultiEscapeConverter.cs +64 -0
@@ -0,0 +1,64 @@
1 namespace XFEExtension.NetCore.XFETransform;
2
3 /// <summary>
4 /// 转义器
5 /// </summary>
6 public class MultiEscapeConverter
7 {
8 /// <summary>
9 /// 转义用符号
10 /// </summary>
11 public string EscapeSymbol { get; set; } = "/";
12 /// <summary>
13 /// 待转义的符号
14 /// </summary>
15 public string[] Escapes { get; set; }
16 /// <summary>
17 /// 转义(生成转义后文本)
18 /// </summary>
19 /// <param name="str"></param>
20 /// <returns></returns>
21 public string Convert(string str)
22 {
23 str = ConvertEscapeSymbol(str);
24 foreach (string escape in Escapes)
25 {
26 str = str.Replace(escape, $"{EscapeSymbol}{escape}");
27 }
28 return str;
29 }
30 /// <summary>
31 /// 逆转义(生成原文)
32 /// </summary>
33 /// <param name="str"></param>
34 /// <returns></returns>
35 public string Inverse(string str)
36 {
37 foreach (string escape in Escapes)
38 {
39 str = str.Replace($"{EscapeSymbol}{escape}", escape);
40 }
41 str = InverseEscapeSymbol(str);
42 return str;
43 }
44 private string ConvertEscapeSymbol(string str) => str.Replace(EscapeSymbol, $"{EscapeSymbol}{EscapeSymbol}");
45 private string InverseEscapeSymbol(string str) => str.Replace($"{EscapeSymbol}{EscapeSymbol}", EscapeSymbol);
46 /// <summary>
47 /// 转义器
48 /// </summary>
49 /// <param name="escapes">待转义字符</param>
50 public MultiEscapeConverter(string[] escapes)
51 {
52 Escapes = escapes;
53 }
54 /// <summary>
55 /// 转义器
56 /// </summary>
57 /// <param name="escapeSymbol">转义用符号</param>
58 /// <param name="escapes">待转义字符</param>
59 public MultiEscapeConverter(string escapeSymbol, params string[] escapes)
60 {
61 EscapeSymbol = escapeSymbol;
62 Escapes = escapes;
63 }
64 }