EnumPlus.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Linq;
  5. using System.Text;
  6. namespace Ant.Service.Utility
  7. {
  8. public class EnumPlus
  9. {
  10. /// <summary>
  11. /// 获取枚举的描述信息
  12. /// </summary>
  13. /// <param name="e">枚举值</param>
  14. /// <returns>描述信息</returns>
  15. public static string GetEnumDesc(Enum e)
  16. {
  17. var enumInfo = e.GetType().GetField(e.ToString());
  18. var enumAttributes = (DescriptionAttribute[])enumInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
  19. return enumAttributes.Length > 0 ? enumAttributes[0].Description : e.ToString();
  20. }//end method
  21. /// <summary>
  22. /// 重载将含有描述信息的枚举绑定到列表控件中的方法
  23. /// </summary>
  24. /// <param name="listControl">待绑定控件</param>
  25. /// <param name="enumType">枚举类型申明</param>
  26. public static List<EnumModel> DesEnumToList(Type enumType)
  27. {
  28. List<EnumModel> enumlist = new List<EnumModel>();
  29. foreach (object enumValue in Enum.GetValues(enumType))
  30. {
  31. if (enumValue != null)
  32. {
  33. EnumModel mod = new EnumModel();
  34. mod.Desc = GetEnumDesc((Enum)enumValue);
  35. mod.Name = enumValue.ToString();
  36. mod.Value = enumValue.ToInt32();
  37. enumlist.Add(mod);
  38. }
  39. }
  40. return enumlist;
  41. }//end method
  42. }
  43. public class EnumModel
  44. {
  45. /// <summary>
  46. /// 枚举名称
  47. /// </summary>
  48. public string Name { get; set; }
  49. /// <summary>
  50. /// 枚举的值
  51. /// </summary>
  52. public int Value { get; set; }
  53. /// <summary>
  54. /// 枚举的备注
  55. /// </summary>
  56. public string Desc { get; set; }
  57. }
  58. }