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;
}
}
}