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-修复部分对象分析的已知问题,细分了属性和字段类型

7ff3dcf
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

7 个文件 +63 -17
Modified XFEExtension.NetCore.Analyzer.Test/Program.cs +0 -1
@@ -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
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.3</Version>
35 <Version>2.6.4</Version>
36 36 <Authors>XFEstudio</Authors>
37 37 </PropertyGroup>
38 38
Modified XFEExtension.NetCore/XFETransform/ObjectInfoAnalyzer/ObjectPlace.cs +28 -4
@@ -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>
Modified XFEExtension.NetCore/XFETransform/StringConverter/JsonTransformer.cs +1 -1
@@ -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++)
Modified XFEExtension.NetCore/XFETransform/StringConverter/ObjectAnalyzer.cs +14 -3
@@ -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 => "[数组成员]",
Modified XFEExtension.NetCore/XFETransform/StringConverter/StringConverter.cs +6 -1
@@ -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 }
Modified XFEExtension.NetCore/XFETransform/XFEConverter.cs +12 -5
@@ -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 }