ソースを参照

!1851 生成代码获取实体信息时通过furion的App.EffectiveTypes来获取,以排除标记了SuppressSniffer的类
Merge pull request !1851 from 陆浩/v2

zuohuaijun 9 ヶ月 前
コミット
33ab8c52d9

+ 3 - 9
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs

@@ -319,15 +319,9 @@ public class SysCodeGenService : IDynamicApiController, ITransient
         var types = new List<Type>();
         if (_codeGenOptions.EntityAssemblyNames != null)
         {
-            var assemblies = AppDomain.CurrentDomain.GetAssemblies();
-            foreach (var assembly in assemblies)
-            {
-                var assemblyName = assembly.GetName().Name;
-                if (!_codeGenOptions.EntityAssemblyNames.Contains(assemblyName) && !_codeGenOptions.EntityAssemblyNames.Any(name => assemblyName!.Contains(name))) continue;
-
-                Assembly asm = Assembly.Load(assemblyName!);
-                types.AddRange(asm.GetExportedTypes().ToList());
-            }
+            types = App.EffectiveTypes.Where(c => c.IsClass)
+                .Where(c => _codeGenOptions.EntityAssemblyNames.Contains(c.Assembly.GetName().Name) || _codeGenOptions.EntityAssemblyNames.Any(name => c.Assembly.GetName().Name!.Contains(name)))
+                .ToList();
         }
 
         Type[] cosType = types.Where(o => IsMyAttribute(Attribute.GetCustomAttributes(o, true))).ToArray();