#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. 如何实现一个php框架系列文章【5】安全处理输入

    所有的外部输入参数都应该检查合法性. 未正确处理输入数据将可能导致sql注入等漏洞. 框架提供系列函数来取$_REQUEST中的值 requestInt requestString requestFl ...

  2. 【重大更新】开源跨平台物联网通讯框架ServerSuperIO 2.0(SSIO)下载

    更新具体细节参见:[更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能.BUG.细节说明,以及升级思考过程! 声明:公司在建设工业大数据平台,SSIO正好能派上用场,所以抓紧时间 ...

  3. SpringMVC类型转换器、属性编辑器

    对于MVC框架,参数绑定一直觉得是很神奇很方便的一个东西,在参数绑定的过程中利用了属性编辑器.类型转换器 参数绑定流程 参数绑定:把请求中的数据,转化成指定类型的对象,交给处理请求的方法 请求进入到D ...

  4. 《Web开发过滤Javascript、HTML的方法》

    JavaScript过滤方法: 第一种方案:使用 htmlspecialchars 函数转换特殊字符和使用 nl2br 函数插入一些必要的 <br /> 标签. $comment = &l ...

  5. wamp 服务器安装问题 及cmd常用命令 和 php mysql数据库常用cmd命令集

    1   官网下载wamp软件包,根据提示安装 2   目录结构:   wamp:   bin/为套件目录 包括mysql apache php log   日志记录 alias 配置 apps 数据库 ...

  6. Android--Volley框架的使用

    一.Volley特点 通信更快,更简单(数据量不大,但网络通信频繁) Get.Post网络请求及网络图像的高效率异步处理 排序(可以通过网络请求的优先级进行处理) 网络请求的缓存 多级别取消请求 和A ...

  7. centos 6 YUM安装 lmp

    准备篇: 1.配置防火墙,开启80端口.3306端口       vi /etc/sysconfig/iptables       -A INPUT -m state --state NEW -m t ...

  8. git与github安装、配置、pull、push

    操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...

  9. 拥抱.NET Core,如何开发跨平台的应用并部署至Ubuntu运行

    之前写了一篇博文宣布Rabbit Rpc跨平台了"拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc",在过程中尝试了如何编写支持跨平台的类库与应用程序,也尝试了在 ...

  10. 父div高度不能根据子div高度自动变化的解决方案

    <div id="parent"> <div id="content"> </div> </div> 当cont ...