using HStation.RevitDev.Model.ModelEnum; using System; using System.ComponentModel; using System.Reflection; namespace HStation.RevitDev.RevitDataExport.Common { /// /// 描述特性的读取扩展类 /// public static class DescriptionExtension { /// /// 获取枚举的描述信息 /// public static string GetDescription(this RevitType em) { Type type = em.GetType(); FieldInfo fd = type.GetField(em.ToString()); string des = fd.GetDescription(); return des; } /// /// 获取属性的描述信息 /// public static string GetDescription(this Type type, string proName) { PropertyInfo pro = type.GetProperty(proName); string des = proName; if (pro != null) { des = pro.GetDescription(); } return des; } /// /// 获取属性的描述信息 /// public static string GetDescription(this MemberInfo info) { var attrs = (DescriptionAttribute[])info.GetCustomAttributes(typeof(DescriptionAttribute), false); string des = info.Name; foreach (DescriptionAttribute attr in attrs) { des = attr.Description; } return des; } public static string GetDescriptioin(this Enum info) { Type enumType = info.GetType(); MemberInfo[] memberInfo = enumType.GetMembers(); foreach (MemberInfo member in memberInfo) { string enumName = member.Name; if (enumName == info.ToString()) { var attrs = member.GetCustomAttributes(typeof(DescriptionAttribute), false); if (attrs.Length == 0) { return string.Empty; } DescriptionAttribute attr = attrs[0] as DescriptionAttribute; return attr.Description; } } return string.Empty; } } }