XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore/XFEExtension.NetCore.csproj
+2
-2
Modified
XFEExtension.NetCore/XFETransform/ObjectInfoAnalyzer/ObjectPlace.cs
+4
-28
Modified
XFEExtension.NetCore/XFETransform/StringConverter/ObjectAnalyzer.cs
+2
-8
Modified
XFEExtension.NetCore/XFETransform/XFEConverter.cs
+10
-27
XFEstudio/XFEExtension
fix-删除细分
952fa19
代码差异
4 个文件
+18
-65
@@ -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.4</Version>
35
<Version>2.6.5</Version>
36
36
<Authors>XFEstudio</Authors>
37
37
</PropertyGroup>
38
38
@@ -6,37 +6,13 @@
6
6
public enum ObjectPlace
7
7
{
8
8
/// <summary>
9
/// 一般类型属性
9
/// 属性
10
10
/// </summary>
11
NormalProperty,
11
Property,
12
12
/// <summary>
13
/// 列表类型属性
13
/// 字段
14
14
/// </summary>
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,
15
Field,
40
16
/// <summary>
41
17
/// 主对象
42
18
/// </summary>
@@ -98,14 +98,8 @@ public class ObjectAnalyzer : StringConverter
98
98
99
99
internal static string AddObjectPlace(IObjectInfo objectInfo) => objectInfo.ObjectPlace switch
100
100
{
101
ObjectPlace.NormalProperty => "[属性]",
102
ObjectPlace.ListProperty => "[属性]",
103
ObjectPlace.ArrayProperty => "[属性]",
104
ObjectPlace.EnumProperty => "[属性]",
105
ObjectPlace.NormalField => "[字段]",
106
ObjectPlace.ListField => "[字段]",
107
ObjectPlace.ArrayField => "[字段]",
108
ObjectPlace.EnumField => "[字段]",
101
ObjectPlace.Property => "[属性]",
102
ObjectPlace.Field => "[字段]",
109
103
ObjectPlace.Main => "[主体]",
110
104
ObjectPlace.Array => "[数组]",
111
105
ObjectPlace.ArrayMember => "[数组成员]",
@@ -79,9 +79,9 @@ public class XFEConverter
79
79
{
80
80
arrayObjects.Add(GetObjectInfo(stringConverter, "数组成员", ObjectPlace.ArrayMember, layer + 1, item.GetType(), item, onlyProperty, onlyPublic));
81
81
}
82
catch (Exception ex)
82
catch
83
83
{
84
arrayObjects.Add(GetObjectInfo(stringConverter, "数组成员", ObjectPlace.ArrayMember, layer + 1, item.GetType(), $"[获取失败:{ex.Message}]", onlyProperty, onlyPublic));
84
arrayObjects.Add(GetObjectInfo(stringConverter, "数组成员", ObjectPlace.ArrayMember, layer + 1, null, null, onlyProperty, onlyPublic));
85
85
}
86
86
}
87
87
return new ObjectInfoImpl(stringConverter, name, objectPlace, layer, type, false, true, value, arrayObjects);
@@ -95,9 +95,9 @@ public class XFEConverter
95
95
{
96
96
enumerableObjects.Add(GetObjectInfo(stringConverter, "列表成员", ObjectPlace.ListMember, layer + 1, item.GetType(), item, onlyProperty, onlyPublic));
97
97
}
98
catch (Exception ex)
98
catch
99
99
{
100
enumerableObjects.Add(GetObjectInfo(stringConverter, "列表成员", ObjectPlace.ListMember, layer + 1, item.GetType(), $"[获取失败:{ex.Message}]", onlyProperty, onlyPublic));
100
enumerableObjects.Add(GetObjectInfo(stringConverter, "列表成员", ObjectPlace.ListMember, layer + 1, null, null, onlyProperty, onlyPublic));
101
101
}
102
102
}
103
103
return new ObjectInfoImpl(stringConverter, name, objectPlace, layer, type, false, true, value, enumerableObjects);
@@ -109,44 +109,27 @@ public class XFEConverter
109
109
var subObjects = new List<IObjectInfo>();
110
110
foreach (var memberInfo in type.GetMembers((onlyPublic ? BindingFlags.Public : BindingFlags.NonPublic | BindingFlags.Public) | BindingFlags.Instance | BindingFlags.Static))
111
111
{
112
ObjectPlace currentObjectPlace;
113
112
if (memberInfo is PropertyInfo propertyInfo)
114
113
{
115
if (propertyInfo.PropertyType.IsAssignableTo(typeof(Array)))
116
currentObjectPlace = ObjectPlace.ArrayProperty;
117
else if (propertyInfo.PropertyType.IsAssignableTo(typeof(IEnumerable)))
118
currentObjectPlace = ObjectPlace.ListProperty;
119
else if (propertyInfo.PropertyType.IsAssignableTo(typeof(Enum)))
120
currentObjectPlace = ObjectPlace.EnumProperty;
121
else
122
currentObjectPlace = ObjectPlace.NormalProperty;
123
114
try
124
115
{
125
subObjects.Add(GetObjectInfo(stringConverter, propertyInfo.Name, currentObjectPlace, layer + 1, propertyInfo.PropertyType, propertyInfo.GetValue(value), onlyProperty, onlyPublic));
116
subObjects.Add(GetObjectInfo(stringConverter, propertyInfo.Name, ObjectPlace.Property, layer + 1, propertyInfo.PropertyType, propertyInfo.GetValue(value), onlyProperty, onlyPublic));
126
117
}
127
catch (Exception ex)
118
catch
128
119
{
129
subObjects.Add(GetObjectInfo(stringConverter, propertyInfo.Name, currentObjectPlace, layer + 1, propertyInfo.PropertyType, $"[获取失败:{ex.Message}]", onlyProperty, onlyPublic));
120
subObjects.Add(GetObjectInfo(stringConverter, propertyInfo.Name, ObjectPlace.Property, layer + 1, propertyInfo.PropertyType, null, onlyProperty, onlyPublic));
130
121
}
131
122
continue;
132
123
}
133
124
if (!onlyProperty && memberInfo is FieldInfo fieldInfo)
134
125
{
135
if (fieldInfo.FieldType.IsAssignableTo(typeof(Array)))
136
currentObjectPlace = ObjectPlace.ArrayProperty;
137
else if (fieldInfo.FieldType.IsAssignableTo(typeof(IEnumerable)))
138
currentObjectPlace = ObjectPlace.ListProperty;
139
else if (fieldInfo.FieldType.IsAssignableTo(typeof(Enum)))
140
currentObjectPlace = ObjectPlace.EnumProperty;
141
else
142
currentObjectPlace = ObjectPlace.NormalProperty;
143
126
try
144
127
{
145
subObjects.Add(GetObjectInfo(stringConverter, fieldInfo.Name, currentObjectPlace, layer + 1, fieldInfo.FieldType, fieldInfo.GetValue(value), onlyProperty, onlyPublic));
128
subObjects.Add(GetObjectInfo(stringConverter, fieldInfo.Name, ObjectPlace.Field, layer + 1, fieldInfo.FieldType, fieldInfo.GetValue(value), onlyProperty, onlyPublic));
146
129
}
147
catch (Exception ex)
130
catch
148
131
{
149
subObjects.Add(GetObjectInfo(stringConverter, fieldInfo.Name, currentObjectPlace, layer + 1, fieldInfo.FieldType, $"[获取失败:{ex.Message}]", onlyProperty, onlyPublic));
132
subObjects.Add(GetObjectInfo(stringConverter, fieldInfo.Name, ObjectPlace.Property, layer + 1, fieldInfo.FieldType, null, onlyProperty, onlyPublic));
150
133
}
151
134
}
152
135
}