跨越网络工作室

跨越网络工作室专注于网站建设、游戏软件和行业软件开发,目标就是为客户提供最好的服务.qq:1578065783
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

反射

Posted on 2011-04-28 13:28  跨越网络工作室  阅读(142)  评论(0)    收藏  举报
我们写代码,是面向功能的,比方说,   Math.Add(x,   y)返回x   y之和。但是有时候我们希望给代码附加一些特殊属性,而这些属性可能跟功能关系不大。比方说,我们希望Math.Add()能够作为Web服务的方法被调用。为了解决这个问题,.NET就提出Attribute(属性)概念,你可以写   
  [WebMethod]   
  public   int   Add(int   x,   int   y)   
  {   
  //...   
  }   
  这样编译器在编译Add方法的时候,同时也会把[WebMethod]这个附加的属性也生成并注入到编译结果(程序集)的特定区域,我们称它为元数据区域。这样ASP.NET就可以在运行时扫描属性数据,识别各种Web方法并产生正确的WSDL文档。属性就是一种元数据(所谓元数据,就是描述数据的数据)。其他的元数据包括类型列表,继承关系,接口列表,等等……   
    
  光生成和存储是不够的,我们还要能读取识别元数据,反射就可以干这个,在运行时反射系统可以允许你读取所有的元数据并加以利用(比如,找到一个类的集成树)……   
    
  元数据是描述程序集内部数据的词典,反射是帮你查词典的工具。