[2014-9-9]反射

1.反射即是获取一个运行程序或其他程序的元数据

2.type类是一个抽象类,不能被实例化,用来包含类型的数据

Type t = myInstance.GetType();

Type t =Typeof(myInstance);

3.特性(attribute)

特性是一种向程序集增加元数据的语言结构,特性片被方括号包围,其中是特性名和特性的参数列表

Obsolete特性 将程序结构标注为过期

Conditional特性 包含或者排斥特性方法的所有调用

 3.1多个特性

  独立特性相互重叠在一起,单个特性片段,特性之间用逗号分开。

 特性为字段和方法上的特性

 3.2自定义特性

 声明一个派生自 System.Attribute类 后缀为Attribuete结尾的名称

 建议声明为sealed特性类

 公共成员为 字段,属性,构造函数

  对于字段,声明指定了使用单个字符串的构造函数,对于方法,声明指定了使用了两个字符串的构造函数

  3.3 构造函数中位置参数和命名参数

  命名参数设置特性的字段或者属性的值

  [MyAttribute("class","Reliever=arr",ver="0.1")] 后面两个为命名参数

4 IsDefined方法,检测某个特性是否应用于某个类

t.IsDefined(typeof(MyAttribute),false)

第一个参数 接受检查特性type对象

第二个参数 是否搜素继承树来查找这个特性

5 GetCustomAttribute 方法 返回应用到结构的特性的数组

Object[] arr =t.GetCustomAttribute(false)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值