#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特性描述信息公用方法的更多相关文章

  1. ASP.NET MVC中分析淘宝网页发生乱码标题搞定方法

    ASP.NET MVC中分析淘宝网页发生乱码标题搞定方法 近来正在分析淘宝中商品的信息,效果发生乱码,如: 原因便是中文字符格式发生冲突,ASP.NET MVC 默认采用utf-8,可是淘宝网页采用g ...

  2. MVC中的成员资格,授权,安全性

    使用 Authorize 特性登录 Authorize 是 ASP.NET MVC 自带的默认授权过滤器, 可用来限制用户对操作方法的访问. 保护控制器操作 Authorize 特性在表单身份验证和 ...

  3. MVC中利用ViewBag传递Json数据时的前端处理方法

    用viewBag传递Json字符串到前端时,json字符串中的“会被转义为& quot,前端处理方法为@Html.Raw(Json.Encode(ViewBag.Data)),再用eval() ...

  4. 简析Geoserver中获取图层列表以及各图层描述信息的三种方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 实际项目中需要获取到Geoserver中的图层组织以及各图层 ...

  5. 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容

    在前两篇中,体验了Knockout的基本验证和自定义验证.本篇自定义验证信息的显示位置与内容. 自定义验证信息的显示位置 通常,Knockout的验证信息紧跟在input后面,通过validation ...

  6. spring mvc中@requesMapping的可配置参数和标注的处理方法的可选参数

    @RequestMapping的可选参数 value:表示需要匹配的url的格式. method:表示所需处理请求的http 协议(如get,post,put,delete等),可选值为Request ...

  7. MVC中获取模型属性的Range和StringLength验证特性设置

    MVC中的客户端及服务端模型验证信息都以ModelMetadata类型作为承载,在获得属性的ModelMetadata之后(还不知道怎么获取ModelMetadata的童鞋请自行恶补),我们可以轻松得 ...

  8. Asp.net mvc 中Action 方法的执行(二)

    [toc] 前面介绍了 Action 执行过程中的几个基本的组件,这里介绍 Action 方法的参数绑定. 数据来源 为 Action 方法提供参数绑定的原始数据来源于当前的 Http 请求,可能包含 ...

  9. 获取枚举类型Description特性的描述信息

    C#中可以对枚举类型用Description特性描述. 如果需要对Description信息获取,那么可以定义一个扩展方法来实现.代码如下: public static class EnumExten ...

随机推荐

  1. Web 开发中很实用的10个效果【附源码下载】

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

  2. js判断网页是否加载完毕 包括图片

    <script type="text/javascript" language="JavaScript"> //: 判断网页是否加载完成 docum ...

  3. JAVA-堆区,栈区,方法区。

    转载:http://blog.csdn.net/wangxin1982314/article/details/50293241 堆区: 村线程操纵的数据(对象形式存放) 1 存储的全部是对象,每个对象 ...

  4. DataView详解

    dataview可以用于对你的datatable筛选,搜索,排序,编辑和导航.可以方便对databale的操作. 先来看一下它有哪些属性: 接下来是方法: 我们怎么使用它呢? public datat ...

  5. android不需要Socket的跨进程推送消息AIDL!

    上篇介绍了跨进程实时通讯http://www.cnblogs.com/xiaoxiaing/p/5818161.html 但是他有个缺点就是服务端无法推送消息给客户端,今天这篇文章主要说的就是服务器推 ...

  6. appfuse:Excel导出

    1.pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi< ...

  7. Java中堆内存和栈内存详解2

    Java中堆内存和栈内存详解   Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,ja ...

  8. FrozenUI - 专注于移动web的UI框架

    http://frozenui.github.io/ 移动框架 重磅出击 简单易用,轻量快捷,为移动端服务的前端框架 开始使用 立即下载

  9. Dapper.NET——轻量ORM

    Dapper.NET使用 http://www.cnblogs.com/yankliu-vip/p/4182892.html 本文目录 Dapper.NET使用 1.为什么选择Dapper 2.以Da ...

  10. 简历生成平台项目开发-STEP5初步界面demo实现

    谭卓因为暑期实习,去杭州实习了,走之前在git上上传了一些文档(https://github.com/USTC-CV-creator/),项目到目前为止,前端demo已经做好,后台接收请求生成PDF部 ...