通俗理解ASP.NET反射(Reflection) - TOMMYHU - 专注互联网开发及运营技术,提供相关资料及软件下载,奇趣网络时事评论!
Mar 7

通俗理解ASP.NET反射(Reflection) 不指定

tommyhu , 22:48 , ASP.NET , Comments(0) , Trackbacks(0) , Reads(5892) , Via Original Large | Medium | Small
初学者都是被一堆概念搞蒙掉,痛苦ing,“反射”这个东东一起来瞧瞧,理解下!
hamarneh
tommyhu的理解,反射在外部调用dll组件时用到,不知道组件中的类,因此无法new,将它反射到一个反射载体,例如t上,然后通过t.method来调取dll中的方法等
以来来自网上,不一定正确,做参考吧!


Quotation
运用程序集元数据(metada)的功能,在运行时查询元数据.

你首先要理解一下概念:
一   类型(Type)   对象是什么
      比如   object   x;   x是对象,object就是它的类型,在程序中如何描述类型这个概念呢?就是Type(System.Type)。要获取某个类的类型可以用typeof()操作符

二   程序集(Assembly)
      就是你IDE生成的.exe或.dll文件的运行时就叫程序集。所有的代码都在程序集中。你可以通过Assembly.Load()系列函数动态加载程序集(这一步是动态+载代码的前提,因为所有的代码都在程序集中)。

三   动态加载
      我们普通调用代码是:   对象名.方法名(参数列表);

      动态调用(后一种方法)比静态调用更复杂,而且效率大概低20倍(网上有个哥们好像测试过)。只有在特殊的时候才调用动态加载动态调用---比如,你的主程序启动的时候子模块还没有,要根据登陆信息下载子模块代码并调用子模块代码,就只能用动态+载来实现了.
      
四   元数据
      .net生成的IL代码中标明了在这个(exe,dll)文件中所有的class(类)   method(方法)Attribute(属性)   Property(类属性)的签名和调用方法信息,这些信息就叫做元数据。所谓的Reflection反射,就是利用元数据,可以了解到某个assembly(基本等同文件)中的class。。。。。   (就是上面那一串咚咚)信息和调用方法。

五   .net   framework
      在.net   framework中反射类基本都在System.Reflection中。System.Type是反射的核心类.
与它相关的还有System.Attribute命名空间
网路上的关于“net反射”讨论帖:http://topic.csdn.net/t/20060826/18/4977836.html#r_achor
▲返回顶部
Last modified by tommyhu on2012/03/07 23:20

Add a comment

Nickname

emotemotemotemotemotemotemotemotemotemotemotemotemotemotemotemot