标签:Name PropertyName DisplayAttribute UI result PropertyDetail var public
model定义,使用DisplayAttribute
public class AddressSetInfo { /// <summary> /// invoiceAddress.Id /// </summary> [Display(Name = "Id")] public virtual Int64 Id { get; set; } }
enum定义,使用DisplayAttribute
public enum CustomerFinancialStatementCurrencyType { /// <summary> /// 人民币,CNY /// </summary> [Display(Name = "CNY")] RMB = 1, /// <summary> /// 美元 /// </summary> [Display(Name = "USD")] USD = 2 }
解析DisplayAttribute for class
/// <summary> /// GetPropertyNameDic /// </summary> /// <typeparam name="T">dictionary. key:PropertyName; value:PropertyDetail /// </typeparam> /// <returns></returns> public static Dictionary<string, PropertyDetail> GetPropertyNameDic<T>() { var result = new Dictionary<string, PropertyDetail>(); try { var typeOfObject = typeof(T); var pds = typeOfObject.GetProperties(); if (pds == null) { return result; } foreach (var p in pds) { var propertyItem = new PropertyDetail() { BelongToClassFullName=typeOfObject.FullName, PropertyName=p.Name }; var attr = p.GetCustomAttribute(typeof(DisplayAttribute)) as DisplayAttribute; if (attr != null) { propertyItem.DisplayName = attr.Name; } result.Add(p.Name, propertyItem); } } catch (Exception ex) { throw ex; } return result; }
解析DisplayAttribute for enum
/// <summary> /// GetEnumNameDicForDisplayAttr /// </summary> /// <param name="enumClassType">dictionary. key:enum Value; value:PropertyDetail</param> /// <returns></returns> public static Dictionary<string, PropertyDetail> GetEnumNameDicForDisplayAttr(Type enumClassType) { if (enumClassType == null) { throw new Exception("request is null"); } if(!enumClassType.IsEnum) { throw new Exception("request not enum type"); } var result = new Dictionary<string, PropertyDetail>(); try { var enumValues = enumClassType.GetEnumValues(); foreach (var value in enumValues) { MemberInfo memberInfo = enumClassType.GetMember(value.ToString()).First(); var valueItem = new PropertyDetail() { BelongToClassFullName = enumClassType.FullName, PropertyName = memberInfo.Name }; var descriptionAttribute = memberInfo.GetCustomAttribute<DisplayAttribute>(); if (descriptionAttribute != null) { valueItem.DisplayName = descriptionAttribute.Name; } result.Add(value.ToString(), valueItem); } } catch (Exception ex) { throw ex; } return result; } }
辅助model定义
/// <summary> /// PropertyDetail /// </summary> public class PropertyDetail { /// <summary> /// BelongToClassName /// </summary> public string BelongToClassFullName { get; set; } /// <summary> /// PropertyName /// </summary> public string PropertyName { get; set; } /// <summary> /// DisplayName /// </summary> public string DisplayName { get; set; } }
标签:Name,PropertyName,DisplayAttribute,UI,result,PropertyDetail,var,public 来源: https://www.cnblogs.com/panpanwelcome/p/11910695.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。