| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | |
| | | /// <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>(); |
| | | } |
| | | } |
| | | } |