服务端的TigerApi 框架,基于.NET6 2024 版本
Tiger.Api/Controllers/Base/SystemController.cs
@@ -8,6 +8,9 @@
using Tiger.IBusiness;
using System.Threading;
using System.Linq;
using Tiger.Model;
using System.Xml.Linq;
using System.ComponentModel;
namespace Tiger.Api.Controllers.Base
{
@@ -100,18 +103,30 @@
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("System/Base/[action]")]
        public IActionResult GetEntitys()
        [Route("System/Entitys/Get")]
        public IActionResult GetEntitys(string Namespace, string StartWith)
        {
            Assembly assembly = Assembly.Load("Tiger.Model");
            Type[] types = assembly.GetTypes();
            var entitys = types.Where(q => q.GetInterfaces().Contains(typeof(Model.iEntity)) && q.IsClass).ToList();
            var data = entitys.Select(q => new
            var entitys = types.Where(q => q.IsClass && q.GetInterfaces().Contains(typeof(Model.iEntity)) //&& q.Namespace != "Tiger.Model.Minsun"
                                                       && (Namespace.IsNullOrEmpty() || q.Namespace == Namespace)
                                                       && (StartWith.IsNullOrEmpty() || q.Name.StartsWith(StartWith))
                                                       && !q.GetCustomAttributes(typeof(EntityBase), false).Any()).ToList();
            var data = new
            {
                q.Namespace,
                q.FullName,
                Properties = q.GetProperties().Select(p => new { p.Name, Type = p.PropertyType.Name }).ToList()
            });
                Total = entitys.Count,
                Data = entitys.Select(q => new
                {
                    q.FullName,
                    q.Namespace,
                    q.Name,
                    DisplayName = (q.GetCustomAttribute(typeof(DisplayNameAttribute)) as DisplayNameAttribute)?.DisplayName,
                    Properties = q.GetProperties().Select(p => new {
                        p.Name,
                        DisplayName = (p.GetCustomAttribute(typeof(DisplayNameAttribute)) as DisplayNameAttribute)?.DisplayName,
                        Type = p.PropertyType.Name }).ToList()
                })
            };
            return Ok(data);
        }