- public class ReflectionHelper<T> where T : new()
- {
- /// <summary>
- /// 获取特性信息
- /// </summary>
- /// <param name="t"></param>
- /// <returns></returns>
- public static List<PropertityFieldInfo> GetPropertiyInfo()
- {
- List<PropertityFieldInfo> listRtn = new List<PropertityFieldInfo>();
- Dictionary<int, string> dicPropertiy = new Dictionary<int, string>();
- Dictionary<int, Type> dicFiled = new Dictionary<int, Type>();
- Dictionary<int, string> dicFiledName = new Dictionary<int, string>();
- T obj = new T();
- var pindex = 0;
- var properties = obj.GetType().GetProperties();
- var files = obj.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
- foreach (var p in properties)
- {
- var v = (DescriptionAttribute[])p.GetCustomAttributes(typeof(DescriptionAttribute), false);
- var desc = v[0].Description;
- dicFiledName.Add(pindex, p.Name);
- dicPropertiy.Add(pindex, desc);
- pindex++;
- }
- var findex = 0;
- foreach (var f in files)
- {
- var fieldType = f.FieldType;
- dicFiled.Add(findex, fieldType);
- findex++;
- }
- foreach (KeyValuePair<int, string> kv in dicPropertiy)
- {
- PropertityFieldInfo m = new PropertityFieldInfo();
- m.Name = dicFiledName[kv.Key];
- m.Desc = dicPropertiy[kv.Key];
- m.Type = dicFiled[kv.Key];
- listRtn.Add(m);
- }
- return listRtn;
- }
- /// <summary>
- /// 获取所有列名描述
- /// </summary>
- /// <returns></returns>
- public static List<string> GetPropertiyDescInfo()
- {
- List<string> list = new List<string>();
- var propertiyInfos = GetPropertiyInfo();
- foreach (var item in propertiyInfos)
- {
- list.Add(item.Desc);
- }
- return list;
- }
- }
- public class PropertityFieldInfo
- {
- public string Name { get; set; }
- public string Desc { get; set; }
- public Type Type { get; set; }
- }
来源: https://www.cnblogs.com/Ryan2012/p/9419413.html