反射中获取类的注解名
1.首先定义一个类
public class cartcode { /// <summary> /// ID /// </summary> [DisplayName("ID")] public virtual int Id { get; set; } /// <summary> /// 标签Code /// </summary> [DisplayName("标签Code")] public virtual string Code { get; set; } /// <summary> /// 序列号 /// </summary> [DisplayName("序列号")] public virtual string SerialNumber { get; set; } }
2.下面通过反射获取传递对象的属性,并通过自定义特性获取该对象的所有DisplayName自定义备注
1 /// <summary> 2 /// 获取对象属性注解名 3 /// </summary> 4 /// <typeparam name="T"></typeparam> 5 /// <param name="model"></param> 6 /// <returns></returns> 7 public static List<string> GetDisPlayName<T>(T model) 8 { 9 //获取该对象的所有属性 10 PropertyInfo [] propertyInfos = model.GetType().GetProperties(); 11 List<string> disPlayName = new List<string>(); 12 foreach (var item in propertyInfos) 13 { 14 //获取该属性的自定义特性(这里是DisplayName),还有其他一些特性用法都是一样 15 var attrs = item.GetCustomAttributes(typeof(DisplayNameAttribute), true); 16 if (attrs[0] != null) 17 { 18 disPlayName.Add(((DisplayNameAttribute)attrs[0]).DisplayName); 19 } 20 } 21 return disPlayName; 22 23 }
3.最后调用就好了
1 List<string> disPlayNames = GetDisPlayName(new cartcode());

浙公网安备 33010602011771号