XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore.Analyzer.Test/Program.cs
+0
-1
Modified
XFEExtension.NetCore/XFEExtension.NetCore.csproj
+2
-2
Modified
XFEExtension.NetCore/XFETransform/ObjectInfoAnalyzer/ObjectPlace.cs
+28
-4
Modified
XFEExtension.NetCore/XFETransform/StringConverter/JsonTransformer.cs
+1
-1
Modified
XFEExtension.NetCore/XFETransform/StringConverter/ObjectAnalyzer.cs
+14
-3
Modified
XFEExtension.NetCore/XFETransform/StringConverter/StringConverter.cs
+6
-1
Modified
XFEExtension.NetCore/XFETransform/XFEConverter.cs
+12
-5
XFEstudio/XFEExtension
fix-修复部分对象分析的已知问题,细分了属性和字段类型
7ff3dcf
代码差异
7 个文件
+63
-17
@@ -1,7 +1,6 @@
1
1
using XFEExtension.NetCore.StringExtension;
2
2
using XFEExtension.NetCore.XFETransform;
3
3
using XFEExtension.NetCore.XFETransform.ObjectInfoAnalyzer;
4
using XFEExtension.NetCore.XFETransform.StringConverter;
5
4
6
5
namespace XFEExtension.NetCore.Analyzer.Test;
7
6
@@ -19,7 +19,7 @@
19
19
<PackageTags>XFE;拓展;GPT;Server;服务器;测试;XFEExtension</PackageTags>
20
20
<PackageReleaseNotes>## 调整
21
21
22
对象分析将使用依赖注入,用户现在可以自己编写输出逻辑
22
修复部分对象分析的已知问题,细分了属性和字段类型
23
23
24
24
## 新增
25
25
@@ -32,7 +32,7 @@
32
32
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
33
33
<PackageLicenseFile>LICENSE</PackageLicenseFile>
34
34
<AssemblyOriginatorKeyFile>..\XFEstudio.pfx</AssemblyOriginatorKeyFile>
35
<Version>2.6.3</Version>
35
<Version>2.6.4</Version>
36
36
<Authors>XFEstudio</Authors>
37
37
</PropertyGroup>
38
38
@@ -6,13 +6,37 @@
6
6
public enum ObjectPlace
7
7
{
8
8
/// <summary>
9
/// 属性
9
/// 一般类型属性
10
10
/// </summary>
11
Property,
11
NormalProperty,
12
12
/// <summary>
13
/// 字段
13
/// 列表类型属性
14
14
/// </summary>
15
Field,
15
ListProperty,
16
/// <summary>
17
/// 数组类型属性
18
/// </summary>
19
ArrayProperty,
20
/// <summary>
21
/// 枚举类型属性
22
/// </summary>
23
EnumProperty,
24
/// <summary>
25
/// 一般类型字段
26
/// </summary>
27
NormalField,
28
/// <summary>
29
/// 列表类型字段
30
/// </summary>
31
ListField,
32
/// <summary>
33
/// 数组类型字段
34
/// </summary>
35
ArrayField,
36
/// <summary>
37
/// 枚举类型字段
38
/// </summary>
39
EnumField,
16
40
/// <summary>
17
41
/// 主对象
18
42
/// </summary>
@@ -64,7 +64,7 @@ internal class JsonTransformer : StringConverter
64
64
return outPutString;
65
65
}
66
66
67
internal override string OutPutSubObjects(ISubObjects subObjects)
67
public override string OutPutSubObjects(ISubObjects subObjects)
68
68
{
69
69
var outString = string.Empty;
70
70
for (int i = 0; i < subObjects.Count; i++)
@@ -47,7 +47,12 @@ public class ObjectAnalyzer : StringConverter
47
47
return outPutString;
48
48
}
49
49
50
internal override string OutPutSubObjects(ISubObjects subObjects)
50
/// <summary>
51
/// 分析子对象信息
52
/// </summary>
53
/// <param name="subObjects"></param>
54
/// <returns></returns>
55
public override string OutPutSubObjects(ISubObjects subObjects)
51
56
{
52
57
var outString = string.Empty;
53
58
for (int i = 0; i < subObjects.Count; i++)
@@ -93,8 +98,14 @@ public class ObjectAnalyzer : StringConverter
93
98
94
99
internal static string AddObjectPlace(IObjectInfo objectInfo) => objectInfo.ObjectPlace switch
95
100
{
96
ObjectPlace.Property => "[属性]",
97
ObjectPlace.Field => "[字段]",
101
ObjectPlace.NormalProperty => "[属性]",
102
ObjectPlace.ListProperty => "[属性]",
103
ObjectPlace.ArrayProperty => "[属性]",
104
ObjectPlace.EnumProperty => "[属性]",
105
ObjectPlace.NormalField => "[字段]",
106
ObjectPlace.ListField => "[字段]",
107
ObjectPlace.ArrayField => "[字段]",
108
ObjectPlace.EnumField => "[字段]",
98
109
ObjectPlace.Main => "[主体]",
99
110
ObjectPlace.Array => "[数组]",
100
111
ObjectPlace.ArrayMember => "[数组成员]",
@@ -13,5 +13,10 @@ public abstract class StringConverter : IStringConverter
13
13
/// <param name="objectInfo"></param>
14
14
/// <returns></returns>
15
15
public abstract string OutPutObject(IObjectInfo objectInfo);
16
internal abstract string OutPutSubObjects(ISubObjects subObjects);
16
/// <summary>
17
/// 输出子对象信息
18
/// </summary>
19
/// <param name="subObjects"></param>
20
/// <returns></returns>
21
public abstract string OutPutSubObjects(ISubObjects subObjects);
17
22
}
@@ -75,7 +75,14 @@ public class XFEConverter
75
75
var arrayObjects = new List<IObjectInfo>();
76
76
foreach (var item in (Array)value)
77
77
{
78
arrayObjects.Add(GetObjectInfo(stringConverter, "数组成员", ObjectPlace.Array, layer + 1, item.GetType(), item, onlyProperty, onlyPublic));
78
try
79
{
80
arrayObjects.Add(GetObjectInfo(stringConverter, "数组成员", ObjectPlace.ArrayMember, layer + 1, item.GetType(), item, onlyProperty, onlyPublic));
81
}
82
catch (Exception ex)
83
{
84
arrayObjects.Add(GetObjectInfo(stringConverter, "数组成员", ObjectPlace.ArrayMember, layer + 1, item.GetType(), $"[获取失败:{ex.Message}]", onlyProperty, onlyPublic));
85
}
79
86
}
80
87
return new ObjectInfoImpl(stringConverter, name, objectPlace, layer, type, false, true, value, arrayObjects);
81
88
}
@@ -86,11 +93,11 @@ public class XFEConverter
86
93
{
87
94
try
88
95
{
89
enumerableObjects.Add(GetObjectInfo(stringConverter, "列表成员", ObjectPlace.List, layer + 1, item.GetType(), item, onlyProperty, onlyPublic));
96
enumerableObjects.Add(GetObjectInfo(stringConverter, "列表成员", ObjectPlace.ListMember, layer + 1, item.GetType(), item, onlyProperty, onlyPublic));
90
97
}
91
98
catch (Exception ex)
92
99
{
93
enumerableObjects.Add(GetObjectInfo(stringConverter, "列表成员", ObjectPlace.List, layer + 1, item.GetType(), $"[获取失败:{ex.Message}]", onlyProperty, onlyPublic));
100
enumerableObjects.Add(GetObjectInfo(stringConverter, "列表成员", ObjectPlace.ListMember, layer + 1, item.GetType(), $"[获取失败:{ex.Message}]", onlyProperty, onlyPublic));
94
101
}
95
102
}
96
103
return new ObjectInfoImpl(stringConverter, name, objectPlace, layer, type, false, true, value, enumerableObjects);
@@ -106,11 +113,11 @@ public class XFEConverter
106
113
{
107
114
try
108
115
{
109
subObjects.Add(GetObjectInfo(stringConverter, propertyInfo.Name, ObjectPlace.Property, layer + 1, propertyInfo.PropertyType, propertyInfo.GetValue(value), onlyProperty, onlyPublic));
116
subObjects.Add(GetObjectInfo(stringConverter, propertyInfo.Name, ObjectPlace.NormalProperty, layer + 1, propertyInfo.PropertyType, propertyInfo.GetValue(value), onlyProperty, onlyPublic));
110
117
}
111
118
catch (Exception ex)
112
119
{
113
subObjects.Add(GetObjectInfo(stringConverter, propertyInfo.Name, ObjectPlace.Property, layer + 1, propertyInfo.PropertyType, $"[获取失败:{ex.Message}]", onlyProperty, onlyPublic));
120
subObjects.Add(GetObjectInfo(stringConverter, propertyInfo.Name, ObjectPlace.NormalProperty, layer + 1, propertyInfo.PropertyType, $"[获取失败:{ex.Message}]", onlyProperty, onlyPublic));
114
121
}
115
122
continue;
116
123
}