设为首页 加入收藏

TOP

反射获取属性DisplayName特性名字以及属性值
2019-09-17 18:13:13 】 浏览:21
Tags:反射 获取 属性 DisplayName 特性 名字 以及
 /// <summary>
        /// 反射获取所有DisplayName标记值
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="model">需要获取的实体</param>
        /// <returns></returns>
        List<string> GetDisplayName<T>(T model)
        {
            //获取所有属性
            PropertyInfo[] properties = model.GetType().GetProperties();

            var list = new List<string>();
            foreach (var item in properties)
            {
                var attrs = item.GetCustomAttributes(typeof(DisplayNameAttribute), true);
                if (attrs != null)
                {
                    var displayName = ((DisplayNameAttribute)attrs[0]).DisplayName;
                    list.Add(displayName);
                }
            }
            return list;
        }

        /// <summary>
        /// 反射获取属性值
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="modelList">需要获取value的实体集合</param>
        /// <returns></returns>
        List<string> GetValue<T>(T modelList)
        {
            var list = new List<string>();
            var type = modelList.GetType();
            var properties = type.GetProperties();
            foreach (var item in properties)
            {
                var pName = item.Name;
                PropertyInfo propertyInfo = type.GetProperty(pName);
                var value = propertyInfo.GetValue(modelList)?.ToString();
                list.Add(value);
            }
            return list;
        }

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇配置合适的Visual Studio 2017 开.. 下一篇Asp.NetCore轻松学-使用Superviso..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目