ReflectionUtil.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Reflection;
  3. namespace YBEE.EQM.Core
  4. {
  5. /// <summary>
  6. /// 反射工具
  7. /// </summary>
  8. public static class ReflectionUtil
  9. {
  10. /// <summary>
  11. /// 获取字段特性
  12. /// </summary>
  13. /// <param name="field"></param>
  14. /// <typeparam name="T"></typeparam>
  15. /// <returns></returns>
  16. public static T GetDescriptionValue<T>(this FieldInfo field) where T : Attribute
  17. {
  18. // 获取字段的指定特性,不包含继承中的特性
  19. object[] customAttributes = field.GetCustomAttributes(typeof(T), false);
  20. // 如果没有数据返回null
  21. return customAttributes.Length > 0 ? (T)customAttributes[0] : null;
  22. }
  23. /// <summary>
  24. /// 获取类型的特性
  25. /// </summary>
  26. /// <param name="field"></param>
  27. /// <typeparam name="T"></typeparam>
  28. /// <returns></returns>
  29. public static T GetDescriptionValue<T>(this Type field) where T : Attribute
  30. {
  31. // 获取字段的指定特性,不包含继承中的特性
  32. object[] customAttributes = field.GetCustomAttributes(typeof(T), false);
  33. // 如果没有数据返回null
  34. return customAttributes.Length > 0 ? (T)customAttributes[0] : null;
  35. }
  36. }
  37. }