EnumUtils.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. using System.ComponentModel;
  3. namespace ET;
  4. public static class EnumUtils
  5. {
  6. /// <summary>
  7. /// 获得枚举的描述信息
  8. /// </summary>
  9. /// <param name="enumValue"></param>
  10. /// <returns></returns>
  11. public static string ToDescription(this System.Enum enumValue)
  12. {
  13. var value = enumValue.ToString();
  14. var field = enumValue.GetType().GetField(value);
  15. object[] objs = field?.GetCustomAttributes(typeof(DescriptionAttribute), false);
  16. if (objs.Length == 0)
  17. return value;
  18. DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
  19. return descriptionAttribute.Description;
  20. }
  21. /// <summary>
  22. /// 根据值获取枚举方法 demo: Enum aa = GetEnumByValue(typeof(enum1), "123");
  23. /// </summary>
  24. /// <param name="enumType"></param>
  25. /// <param name="value"></param>
  26. /// <returns></returns>
  27. public static Enum GetEnumByValue(Type enumType, string value)
  28. {
  29. return Enum.Parse(enumType, value) as Enum;
  30. }
  31. /// <summary>
  32. /// 通过枚举,以及值,获取到对应的枚举属性上的描述
  33. /// </summary>
  34. /// <param name="enumType"></param>
  35. /// <param name="value"></param>
  36. /// <returns></returns>
  37. public static string ToDescriptionByEnumType(Type enumType, string value)
  38. {
  39. Enum @enum = Enum.Parse(enumType, value) as Enum;
  40. if (@enum != null)
  41. {
  42. return @enum.ToDescription();
  43. }
  44. else
  45. {
  46. return "";
  47. }
  48. }
  49. }