sunpengfei
9 天以前 a9b167cb33e5c40a41ba09c551702806ab64c230
FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
@@ -89,13 +90,26 @@
        /// <param name="model"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static T GetEnum<T>(this EnumModel<T> model, string name)
            where T : struct
        public static T GetEnum<T>(string name)
            where T : struct, Enum
        {
            return model.Items
               .Where(it => it.Name.Equals(name, StringComparison.OrdinalIgnoreCase))
               .Select(it => it.Enum)
               .FirstOrDefault();
            name = Enum.GetNames<T>().FirstOrDefault(it => it.Equals(name, StringComparison.OrdinalIgnoreCase));
            return Enum.Parse<T>(name);
        }
        /// <summary>
        /// 获取自定义特性
        /// </summary>
        /// <typeparam name="TEnum"></typeparam>
        /// <typeparam name="TAttribute"></typeparam>
        /// <param name="enum"></param>
        /// <returns></returns>
        public static TAttribute GetCustomAttribute<TEnum, TAttribute>(this TEnum @enum)
            where TEnum : struct
            where TAttribute : Attribute
        {
            return typeof(TEnum).GetMember(@enum.ToString())[0].GetCustomAttribute<TAttribute>();
        }
    }
}