From 213546c490b71cdae72dc1f90a8a6f05914cab11 Mon Sep 17 00:00:00 2001 From: jkpete <1031139173@qq.com> Date: Mon, 12 May 2025 14:32:44 +0800 Subject: [PATCH] fixed generator --- .../DataGenerate/EGSvgGenerator.cs | 2 +- .../DataGenerate/EGVariantGenerator.cs | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 addons/EGFramework/Module/GenerateTools/DataGenerate/EGVariantGenerator.cs diff --git a/addons/EGFramework/Module/GenerateTools/DataGenerate/EGSvgGenerator.cs b/addons/EGFramework/Module/GenerateTools/DataGenerate/EGSvgGenerator.cs index af3d19d..19adbbf 100644 --- a/addons/EGFramework/Module/GenerateTools/DataGenerate/EGSvgGenerator.cs +++ b/addons/EGFramework/Module/GenerateTools/DataGenerate/EGSvgGenerator.cs @@ -1,4 +1,4 @@ -namespace EGFramework{ +namespace EGFramework.Generate{ public class EGSvgGenerator : IGenerateToolsInterface { public string SvgHeader { get ; private set;} diff --git a/addons/EGFramework/Module/GenerateTools/DataGenerate/EGVariantGenerator.cs b/addons/EGFramework/Module/GenerateTools/DataGenerate/EGVariantGenerator.cs new file mode 100644 index 0000000..615141e --- /dev/null +++ b/addons/EGFramework/Module/GenerateTools/DataGenerate/EGVariantGenerator.cs @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace EGFramework.Generate{ + public static class EGenerateVariant{ + public static Dictionary EGenerateDictiontaryByObject(this T self){ + PropertyInfo[] propertyNames = typeof(T).GetProperties(); + FieldInfo[] fieldNames = typeof(T).GetFields(); + // object[] s = propertyNames.Select(p => p.GetValue(self)).ToArray(); + // object[] a = fieldNames.Select(p => p.GetValue(self)).ToArray(); + Dictionary result = new Dictionary(); + foreach(PropertyInfo pName in propertyNames){ + object p = pName.GetValue(self); + result.Add(pName.Name,p); + } + foreach(FieldInfo fName in fieldNames){ + object p = fName.GetValue(self); + result.Add(fName.Name,p); + } + return result; + } + + public static List> EGenerateDictionaryByGroup(this IEnumerable self){ + List> result = new List>(); + PropertyInfo[] propertyNames = typeof(T).GetProperties(); + FieldInfo[] fieldNames = typeof(T).GetFields(); + foreach(T member in self){ + Dictionary mResult = new Dictionary(); + foreach(PropertyInfo pName in propertyNames){ + object p = pName.GetValue(self); + mResult.Add(pName.Name,p); + } + foreach(FieldInfo fName in fieldNames){ + object p = fName.GetValue(self); + mResult.Add(fName.Name,p); + } + result.Add(mResult); + } + return result; + } + } +} \ No newline at end of file