简化 Enum.json和CodeGen.json中的名称配置

This commit is contained in:
coolcalf 2024-06-27 11:37:00 +08:00
parent 93ffa5ad50
commit d47b38c155
4 changed files with 14 additions and 6 deletions

View File

@ -3,7 +3,7 @@
// -
"CodeGen": {
"EntityAssemblyNames": [ "Admin.NET.Core", "Admin.NET.Application" ],
"EntityAssemblyNames": [ "Admin." ],
"BaseEntityNames": [ "EntityTenantId", "EntityTenant", "EntityTenantBaseData", "EntityBaseData", "EntityBase", "EntityBaseId" ],
"EntityBaseColumn": {
"EntityTenantId": [ "Id", "TenantId" ],

View File

@ -3,6 +3,6 @@
//
"Enum": {
"EntityAssemblyNames": [ "Admin.NET.Core", "Admin.NET.Application", "Admin.NET.AppCMS" ]
"EntityAssemblyNames": [ "Admin." ]
}
}

View File

@ -248,10 +248,15 @@ public class SysCodeGenService : IDynamicApiController, ITransient
var types = new List<Type>();
if (_codeGenOptions.EntityAssemblyNames != null)
{
foreach (var assemblyName in _codeGenOptions.EntityAssemblyNames)
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var assembly in assemblies)
{
Assembly asm = Assembly.Load(assemblyName);
types.AddRange(asm.GetExportedTypes().ToList());
var assemblyName = assembly.GetName().Name;
if (_codeGenOptions.EntityAssemblyNames.Contains(assemblyName) || _codeGenOptions.EntityAssemblyNames.Any(name => assemblyName.Contains(name)))
{
Assembly asm = Assembly.Load(assemblyName);
types.AddRange(asm.GetExportedTypes().ToList());
}
}
}
bool IsMyAttribute(Attribute[] o)

View File

@ -27,7 +27,10 @@ public class SysEnumService : IDynamicApiController, ITransient
[DisplayName("获取所有枚举类型")]
public List<EnumTypeOutput> GetEnumTypeList()
{
var enumTypeList = App.EffectiveTypes.Where(u => u.IsEnum && _enumOptions.EntityAssemblyNames.Contains(u.Assembly.GetName().Name)).OrderBy(u => u.Name).OrderBy(u => u.FullName).ToList();
var enumTypeList = App.EffectiveTypes.Where(t => t.IsEnum)
.Where(t => _enumOptions.EntityAssemblyNames.Contains(t.Assembly.GetName().Name) || _enumOptions.EntityAssemblyNames.Any(name => t.Assembly.GetName().Name.Contains(name)))
.OrderBy(u => u.Name).OrderBy(u => u.FullName)
.ToList();
var result = new List<EnumTypeOutput>();
foreach (var item in enumTypeList)