MVC中得到成员元数据的Description特性描述信息公用方法
#region 从类型成员获取指定的Attribute T特性集合
/// <summary>
/// 从类型成员获取指定的Attribute T特性集合
/// </summary>
/// <typeparam name="T">Attribute特性类型集合</typeparam>
/// <param name="memberinfo">实现了ICustomAttributeProvider接口的类实例</param>
/// <param name="inherit">是否从继承中查找,默认不查找</param>
/// <returns>存在则返回第一个,不存在返回null</returns>
public static T GetAttribute<T>(this ICustomAttributeProvider memberinfo, bool inherit = false) where T : Attribute
{
return memberinfo.GetCustomAttributes(typeof(T), inherit).SingleOrDefault() as T;
} /// <summary>
/// 从类型成员获取指定的Attribute T特性集合
/// </summary>
/// <typeparam name="T[]">Attribute特性类型</typeparam>
/// <param name="memberinfo">实现了ICustomAttributeProvider接口的类实例</param>
/// <param name="inherit">是否从继承中查找,默认不查找</param>
/// <returns>存在则返回所有特性集合,不存在返回null</returns>
public static T[] GetAttributes<T>(this ICustomAttributeProvider memberinfo, bool inherit = false) where T : Attribute
{
return memberinfo.GetCustomAttributes(typeof(T), inherit).Cast<T>().ToArray();
} #endregion #region 获取是否在此成员上定义一个或多个 attributeType 的实例
/// <summary>
/// 获取是否在此成员上定义一个或多个 attributeType 的实例
/// </summary>
/// <typeparam name="T">要检查的Attribute特性类</typeparam>
/// <param name="memberinfo">要检查的类成员</param>
/// <param name="inherit">是否从继承中查找,默认不查找</param>
/// <returns>是否存在</returns>
public static bool AttributeExists<T>(this ICustomAttributeProvider memberinfo, bool inherit = false)
where T : Attribute
{
return memberinfo.IsDefined(typeof(T), inherit);
}
#endregion #region 得到成员元数据的Description特性描述信息
/// <summary>
/// 得到成员元数据的Description特性描述信息
/// </summary>
/// <param name="memberinfo">成员元数据对象</param>
/// <param name="inherit">是否从继承中查找,默认不查找</param>
/// <returns>存在则返回Description的描述信息,否则返回空</returns>
public static string GetDescription(this ICustomAttributeProvider memberinfo, bool inherit = false)
{
DescriptionAttribute desc = memberinfo.GetAttribute<DescriptionAttribute>(inherit);
return desc == null ? String.Empty : desc.Description;
}
#endregion
MVC中得到成员元数据的Description特性描述信息公用方法的更多相关文章
- ASP.NET MVC中分析淘宝网页发生乱码标题搞定方法
ASP.NET MVC中分析淘宝网页发生乱码标题搞定方法 近来正在分析淘宝中商品的信息,效果发生乱码,如: 原因便是中文字符格式发生冲突,ASP.NET MVC 默认采用utf-8,可是淘宝网页采用g ...
- MVC中的成员资格,授权,安全性
使用 Authorize 特性登录 Authorize 是 ASP.NET MVC 自带的默认授权过滤器, 可用来限制用户对操作方法的访问. 保护控制器操作 Authorize 特性在表单身份验证和 ...
- MVC中利用ViewBag传递Json数据时的前端处理方法
用viewBag传递Json字符串到前端时,json字符串中的“会被转义为& quot,前端处理方法为@Html.Raw(Json.Encode(ViewBag.Data)),再用eval() ...
- 简析Geoserver中获取图层列表以及各图层描述信息的三种方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 实际项目中需要获取到Geoserver中的图层组织以及各图层 ...
- 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容
在前两篇中,体验了Knockout的基本验证和自定义验证.本篇自定义验证信息的显示位置与内容. 自定义验证信息的显示位置 通常,Knockout的验证信息紧跟在input后面,通过validation ...
- spring mvc中@requesMapping的可配置参数和标注的处理方法的可选参数
@RequestMapping的可选参数 value:表示需要匹配的url的格式. method:表示所需处理请求的http 协议(如get,post,put,delete等),可选值为Request ...
- MVC中获取模型属性的Range和StringLength验证特性设置
MVC中的客户端及服务端模型验证信息都以ModelMetadata类型作为承载,在获得属性的ModelMetadata之后(还不知道怎么获取ModelMetadata的童鞋请自行恶补),我们可以轻松得 ...
- Asp.net mvc 中Action 方法的执行(二)
[toc] 前面介绍了 Action 执行过程中的几个基本的组件,这里介绍 Action 方法的参数绑定. 数据来源 为 Action 方法提供参数绑定的原始数据来源于当前的 Http 请求,可能包含 ...
- 获取枚举类型Description特性的描述信息
C#中可以对枚举类型用Description特性描述. 如果需要对Description信息获取,那么可以定义一个扩展方法来实现.代码如下: public static class EnumExten ...
随机推荐
- vcredist_x64.exe vcredist_x86.exe 静默安装方法收集
vcredist_x64.exe /install /quiet /norestart 更多方法参考如下: http://www.cnblogs.com/lidabo/archive/2013/01/ ...
- Java三大框架之——Hibernate
什么是Hibernate? Hibernate是基于ORM(O:对象,R:关系,M:映射)映射的持久层框架,是一个封装JDBC的轻量级框架,主要实现了对数据库的CUPD操作. 注:CRUD是指在做计算 ...
- Egret Wiing3快捷键
删除当前行 ( Ctrl+Shift+k ),EgretWing2.5下为 Ctrl+D 折叠 ( Ctrl+Shift+[ ) 展开 ( Ctrl+Shift+] ) Ctrl+Shift+P呼出面 ...
- H5 WebSocket 如何和C#进行通信
HTML5作为下一代的 Web 标准, 拥有许多引人注目的新特性,如 Canvas.本地存储.多媒体编程接口.WebSocket 等.WebSocket 在浏览器和服务器之间提供了一个基于 TCP 连 ...
- 如何围绕企业战略,建设BI驾驶舱?
随着企业的逐步发展,人员的增加.业态的复杂不仅对管理也对信息化的要求越来越高,甚至需要从战略角度出发,进行从上至下的全面推行. 关于这个话题,某公司深有体会.面对这样的瓶颈,一方面从优化信息架构.调整 ...
- 内网渗透-代理(reGeorg)
我对于reGeorg的使用,只是简单说下. 首先需要下载reGeorg,下载地址:https://github.com/sensepost/reGeorg 然后将reGeorg,上传到服务端.直接访问 ...
- android Activity runOnUiThread() 方法的使用
利用Activity.runOnUiThread(Runnable)把更新ui的代码创建在Runnable中,然后在需要更新ui时,把这个Runnable对象传给Activity.runOnUiThr ...
- GCD的相关函数使用
GCD 是iOS多线程实现方案之一,非常常用 英文翻译过来就是伟大的中枢调度器,也有人戏称为是牛逼的中枢调度器 是苹果公司为多核的并行运算提出的解决方案 1.一次性函数 dispatch_once 顾 ...
- JavaEE开发基础
1 JavaEE简介 Java平台有三个版本,分别是JavaSE(Java Platform, Standard Edition),JavaEE(Java Platform, Enterprise E ...
- bitnami redmine版本由2.3.1升级至3.2.2过程
环境: 操作系统为ubuntu13.**版本,非长期支持版. 安装目录:/opt/redmine-2.3.1-0/ 所有者用户:root 安装过程: 1. 备份2.3.1数据库 sudo /opt/r ...