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

XFEExtension

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

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

XFEstudio/XFEExtension

fix-删除细分

952fa19
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

4 个文件 +18 -65
Modified XFEExtension.NetCore/XFEExtension.NetCore.csproj +2 -2
@@ -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
Modified XFEExtension.NetCore/XFETransform/ObjectInfoAnalyzer/ObjectPlace.cs +4 -28
@@ -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>
Modified XFEExtension.NetCore/XFETransform/StringConverter/ObjectAnalyzer.cs +2 -8
@@ -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 => "[数组成员]",
Modified XFEExtension.NetCore/XFETransform/XFEConverter.cs +10 -27
@@ -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 }