读取 DisplayName和Display(Name='')
public class UserClass
{
[DisplayName("名称")] //DisplayName
public string Name { get; set; }
[Display(Name = "年龄")]//Display
public string Age { get; set; }
[Display(Name = "性别")]
public string Sex { get; set; }
[Display(Name = "地址")]
public string Address { get; set; }
[Display(Name = "手机号")]
public string Phone { get; set; }
[Display(Name = "邮箱")]
public string Email { get; set; }
}
代码
/// <summary>
/// 动态获取 DisplayName和Display(Name='')
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public static List<Dictionary<string, string>> GetClassDesc<T>(T t)
{
List<Dictionary<string, string>> dicList = new List<Dictionary<string, string>>();
Dictionary<string, string> dic;
Type type = t.GetType();
PropertyInfo[] ProInfo = type.GetProperties();
foreach (var item in ProInfo)
{
if (dicList.Count > 0)
{
//获取Display(Name='')
dic = new Dictionary<string,string>();
var attribute = type.GetProperty(item.Name);
var displayName = attribute.GetCustomAttribute<DisplayAttribute>();
dic.Add(item.Name, displayName.Name);
dicList.Add(dic);
}
else
{
//获取 DisplayName
dic = new Dictionary<string, string>();
var attribute = type.GetProperty(item.Name);
var displayName = attribute.GetCustomAttribute<DisplayNameAttribute>();
dic.Add(item.Name, displayName.DisplayName);
dicList.Add(dic);
}
}
return dicList;
}
//调用代码
List<Dictionary<string, string>> dicList = GetClassDesc<UserClass>(Us);
foreach (Dictionary<string,string> item in dicList)
{
string Name = item["Name"];//名称
}
读取 DisplayName和Display(Name='')的更多相关文章
- C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)),不对的地方欢迎指出与交流. 章节出自<Professional C# ...
- asp.net core 2.1认证
asp.net core 2.1认证 这篇文章基于asp.net core的CookieAuthenticationHandler来讲述. 认证和授权很相似,他们的英文也很相似,一个是Authenti ...
- SpringBoot核心注解应用
1.今日大纲 了解Spring的发展 掌握Spring的java配置方式 学习Spring Boot 使用Spring Boot来改造购物车系统 2.Spring的发展 Spring1.x 时代 在S ...
- Spring Boot属性文件配置文档(全部)
This sample file is meant as a guide only. Do not copy/paste the entire content into your applicatio ...
- 了解SpringBoot
一.SpringBoot是什么? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发 ...
- APS.NET MVC + EF (08)---数据注解和验证
对于Web开发人员来说,用户输入验证一直是一个挑战.不仅在客户端浏览器中需要执行验证逻辑,在服务器端也需要执行.如果觉得验证是令人望而生畏的繁杂琐事,ASP.NET MVC框架提供了数据注解的方式帮助 ...
- springboot的简单了解与使用
1. Spring Boot 1.1. 什么是Spring Boot 1.2. Spring Boot的优缺点 1.3. 快速入门 1.3.1. 设置spring boot的parent <pa ...
- OPC UA 统一架构) (二)
OPC UA (二) 重头戏,捞取数据,才是该干的事.想获取数据,先有数据源DataPrivade,DataPrivade的数据集合不能和BaseDataVariableState的集合存储同一地址, ...
- SEO
白帽SEO 内容优化 网站标题.关键字.描述 网站内容优化 Robot.txt文件 网站地图 增加外链引用 2. 网站结构布局优化 网站加载速度:一个页面<100k 扁平化:网站 目录层次 少, ...
随机推荐
- Windows Nodejs 安装教程
Windows Nodejs 安装教程 1: 访问官方地址 https://nodejs.org/en/download/ 2: 解压压缩包文件到指定目录 我直接把压缩包解压到C盘根目录下,并将文件夹 ...
- Leetcode题解(十五)
42.Trapping Rain Water 题目 这道题目参考http://www.cnblogs.com/felixfang/p/3713197.html 观察下就可以发现被水填满后的形状是先升后 ...
- HDU1792A New Change Problem(GCD规律推导)
A New Change Problem Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- awk详解 数组
第1章 awk命令基础 1.1 awk命令执行过程 1.如果BEGIN 区块存在,awk执行它指定的动作. 2.awk从输入文件中读取一行,称为一条输入记录.如果输入文件省略,将从标准输入读取 3.a ...
- VMware驱动程序"vmci.sys"的版本不正确 怎么解决
解决办法: 1.创建好虚拟机之后,别打开电源,然后到建好的虚拟机文件夹里: 2.找到后缀vmx的文件,记事本打开: 3.找到vmci0.present='TRUE',把true改为false: 4.保 ...
- 检测CSS属性 是否支持
原理是:创建一个节点,判断其的style属性是否含有textOverflow属性,有则进一步判断是否支持ellipsis这个值.当遇到不支持的属性值时,浏览器会直接把这个值抛弃.因此这里就可以先给te ...
- NFS服务器的安装与配置
由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程. 1.NFS服务的简介: NFS 是 Network File System 的缩写,是Sun公司于 ...
- C++使用htslib库读入和写出bam文件
有时候我们需要使用C++处理bam文件,比如取出read1或者read2等符合特定条件的序列,根据cigar值对序列指定位置的碱基进行统计或者对序列进行处理并输出等,这时我们可以使用htslib库 ...
- C#中抽象类和接口的区别2
1.接口是为了满足外部调用而定义的一个功能约定, 因此反映的是事物的外部特性 抽象类是从一系列相关对象中抽象出来的概念, 因此反映的是事物的内部共性: 2. 下面分别从声明, ...
- MeasureString 通过文本宽度获取绘制高度
using System;using System.Data;using System.Configuration;using System.Linq;using System.Web;using S ...