读取 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 扁平化:网站 目录层次 少, ...
随机推荐
- rewrite写法
RewriteRule ^/android-special-(\d+).html$ /special/index.php?c=index&a=specialDetail&speid=$ ...
- django 实现登录时候输入密码错误5次锁定用户十分钟
在学习django的时候,想要实现登录失败后,进行用户锁定,切记录锁定时间,在网上找了很多资料,但是都感觉不是那么靠谱, 于是乎,我开始了我的设计,其实我一开始想要借助redis呢,但是想要先开发一个 ...
- JQ编写楼层效果
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- Node.js Stream(流)
Stream 是一个抽象接口,Node 中有很多对象实现了这个接口.例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出). Node.js,Str ...
- 隐藏input的光标
https://segmentfault.com/q/1010000000684888 https://wap.didialift.com/beatles/campaign/driver/activi ...
- 腾讯Java程序员第二轮面试11个问题,你会几个?
此前,分享了阿里巴巴.网易.百度等多家名企的JAVA面试题. 这也引来了不少程序员网友们的围观. 其中,也有相当一部分网友是已经从事Java开发好多年的程序员,当他们阅读完JAVA面试题的反应是:一个 ...
- EasyWcf------无需配置,无需引用,动态绑定,轻松使用
设计原则:万物皆对象 前言:在上一篇的0配置使用Wcf中,虽然使用已经很方便了,但是对于最求极致简洁得人来说(比如我),客户端需要通过手动引用服务才能够调用服务接口,那么有没有办法能够绕过手动引用这一 ...
- 学python+django去北京找工作,靠谱吗?
有些朋友说,自己的学习能力还可以.倾向于python加框架,如django,python本来就会一些.不太了解北京公司的情况,想知道现学的python+django在北京找到工作有多少可能性. 要想知 ...
- Velocity(4)——引入指令和#Parse 指令
#Include和#Parse都是用于将本地文件引入当前文件的指令,而且被引入的文件必须位于TEMPLATE_ROOT.这两者之间有一些区别. #Include 被#Include引入的文件,其内容不 ...
- [转]查询 SQL Server 系统目录常见问题
查询 SQL Server 系统目录常见问题 http://msdn.microsoft.com/zh-cn/library/ms345522.aspx#_FAQ4 下列部分按类别列出常见问题. 数据 ...