EnumExtensions.cs 973 B

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace MECF.Framework.Common.Utilities
  8. {
  9. /// <summary>
  10. /// 枚举扩展获取Description
  11. /// </summary>
  12. public static class EnumExtensions
  13. {
  14. public static string ToDescription<T>(this T enumValue) where T : IConvertible
  15. {
  16. // 获取枚举值的名称
  17. var name = Enum.GetName(typeof(T), enumValue);
  18. // 获取字段信息
  19. var field = typeof(T).GetField(name);
  20. // 获取DescriptionAttribute
  21. var attribute = field.GetCustomAttributes(typeof(DescriptionAttribute), false)
  22. .FirstOrDefault() as DescriptionAttribute;
  23. // 返回Description属性的值,如果不存在则返回null
  24. return attribute?.Description;
  25. }
  26. }
  27. }