Cp18 定制Attribute

意义

利用Attribute,可以声明性的给自己的代码结构创建注解,从而实现一些特殊的功能;最终在元数据中生成,这种可扩展的元数据信息可以在运行时的时候查询,从而动态的改变代码的运行方式;大多数Attribute对编译器没有什么特别的意义,只是在元数据中生成它们;
System.Attribute类; 默认可以省略Attribute后缀,C#会默认加上;
顺序无关紧要,应用的时候会调用这个Attribute的构造函数;
System.AttributeUsageAttribute类指明该特性用途;

如何起作用

特性本来只是被额外生成一些元数据,没有其他意义;而类和方法等行为之所以会改变是因为它们自己在运行的时候会自己检查自己关联的特性值,从而决定自己的行为。用的技术就是反射;

如何检查

IsDefined;GetCustomAttributes;GetCustomAttribute;

重写Match方法

在Attribute中重写;

检查定制Attribute的时候不创建从Attribute派生的对象

System.Reflection.CustomAttributeData类的GetCustomAttributes静态方法;

条件Attribute类

System.Diagnostics.CodnitionalAttribute类;

最新文章

  1. hdu2586 LCA
  2. java_js_json_日期格式化
  3. Gray Code
  4. IO碰到的问题
  5. css 网站变灰色
  6. 让你的CI跑起来-《持续集成》读书总结
  7. sql 读取本地txt文件批量插入数据库
  8. IT电子书网站下载
  9. Jquery Ajax调用aspx页面实例
  10. 如何使用KMS激活win10和office
  11. #IOS-navigation中左滑pop的三种方法
  12. CSS的优先级
  13. 三维扫描 FZU 1063
  14. LOJ2396 JOISC2017 长途巴士 斜率优化
  15. python爬虫学习之爬取全国各省市县级城市邮政编码
  16. tab栏切换案例
  17. Linux snprintf使用总结
  18. ListView嵌套 EditText的光标不显示
  19. 【Mysql】mysql和mariadb的区别
  20. XP、Windows7下自动关机vbs脚本,使用windows计划任务+vbs脚本在XP、Windows7下实现定时自动关机

热门文章

  1. 全渠道价值链整合云服务 B2B SOLOMO(组图)
  2. Oracle 体系结构四 逻辑和物理存储结构之间的关系
  3. django, CentOS7+nginx(apache)+mod_wsgi+Python+Django
  4. YouCompleteMe
  5. jsp页面通过EL表达式获取list大小兼容性处理
  6. 静态导入方法即自动拆装箱(java)
  7. openstack之kvm常用操作
  8. 如何使用git命令从github上取得项目
  9. PHP变量定义及工作原理
  10. Linux字符设备驱动--No.1