XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore.Test/Program.cs
+16
-23
Modified
XFEExtension.NetCore/XFEExtension.NetCore.csproj
+3
-4
Modified
XFEExtension.NetCore/XFETransform/EscapeConverter.cs
+20
-32
Added
XFEExtension.NetCore/XFETransform/MultiEscapeConverter.cs
+64
-0
XFEstudio/XFEExtension
change-EscapeConverter能够胜任更多的任务了,功能更加直接,旧版已迁移至MultiEscapeConverter
0b0bce8
代码差异
4 个文件
+103
-59
@@ -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)
@@ -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
@@ -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
}
@@ -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
}