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

XFEExtension

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

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

XFEstudio/XFEExtension

优化属性获取

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

代码差异

3 个文件 +29 -12
Modified XFEExtension.NetCore/XFETransform/ObjectInfo.cs +4 -1
@@ -61,7 +61,10 @@ internal abstract class ObjectInfo : IObjectInfo
61 61 ObjectPlace.Property => "[属性]",
62 62 ObjectPlace.Field => "[字段]",
63 63 ObjectPlace.Main => "[主体]",
64 ObjectPlace.Other => "[无]",
64 ObjectPlace.Array => "[数组]",
65 ObjectPlace.List => "[列表]",
66 ObjectPlace.Enum => "[枚举]",
67 ObjectPlace.Other => "[其他]",
65 68 _ => string.Empty,
66 69 };
67 70
Modified XFEExtension.NetCore/XFETransform/ObjectPlace.cs +12 -0
@@ -18,6 +18,18 @@ public enum ObjectPlace
18 18 /// </summary>
19 19 Main,
20 20 /// <summary>
21 /// 枚举
22 /// </summary>
23 Enum,
24 /// <summary>
25 /// 列表
26 /// </summary>
27 List,
28 /// <summary>
29 /// 数组
30 /// </summary>
31 Array,
32 /// <summary>
21 33 /// 其他
22 34 /// </summary>
23 35 Other
Modified XFEExtension.NetCore/XFETransform/XFEConverter.cs +13 -11
@@ -65,27 +65,29 @@ public class XFEConverter
65 65 var isBasicType = IsBasicType(type);
66 66 if (isBasicType)
67 67 return new ObjectInfoImpl(name, objectPlace, layer, type, true, value);
68 else if (value is null)
69 return new ObjectInfoImpl(name, objectPlace, layer, type, false, false);
70 68 else
71 69 {
70 if (type.IsAssignableTo(typeof(Array)))
71 {
72 var arrayObjects = new SubObjectsImpl();
73 foreach (var item in (Array)value)
74 {
75 arrayObjects.Add(GetObjectInfo("数组成员", ObjectPlace.Array, layer + 1, item.GetType(), item, onlyProperty, onlyPublic));
76 }
77 return new ObjectInfoImpl(name, objectPlace, layer, type, false, true, value, arrayObjects);
78 }
72 79 if (type.IsAssignableTo(typeof(IEnumerable)))
73 80 {
74 81 var enumerableObjects = new SubObjectsImpl();
75 82 foreach (var item in (IEnumerable)value)
76 83 {
77 enumerableObjects.Add(GetObjectInfo("", ObjectPlace.Other, layer + 1, item.GetType(), item, onlyProperty, onlyPublic));
84 enumerableObjects.Add(GetObjectInfo("列表成员", ObjectPlace.List, layer + 1, item.GetType(), item, onlyProperty, onlyPublic));
78 85 }
79 return new ObjectInfoImpl(name, ObjectPlace.Other, layer, type, false, true, value, enumerableObjects);
86 return new ObjectInfoImpl(name, objectPlace, layer, type, false, true, value, enumerableObjects);
80 87 }
81 if (type.IsAssignableTo(typeof(Array)))
88 if (type.IsValueType)
82 89 {
83 var arrayObjects = new SubObjectsImpl();
84 foreach (var item in (Array)value)
85 {
86 arrayObjects.Add(GetObjectInfo("", ObjectPlace.Other, layer + 1, item.GetType(), item, onlyProperty, onlyPublic));
87 }
88 return new ObjectInfoImpl(name, ObjectPlace.Other, layer, type, false, true, value, arrayObjects);
90 return new ObjectInfoImpl(name, objectPlace, layer, type, false, value);
89 91 }
90 92 var subObjects = new SubObjectsImpl();
91 93 foreach (var memberInfo in type.GetMembers((onlyPublic ? BindingFlags.Public : BindingFlags.NonPublic | BindingFlags.Public) | BindingFlags.Instance | BindingFlags.Static))