.Net 反射

原著出处:

http://www.c-sharpcorner.com/UploadFile/harishankar2005/Reflectionin.NET12032005045926AM/Reflectionin.NET.aspx 

描述:

         反射是获取类运行时独立信息的一种机制。你可以想一下它将在什么地方比较有用?试想你在使用Visual studio IDE并且你输入"object",你可以看到与object相关的所有方法,属性和事件。另外一种方法你可以使用对象浏览器。这里的代码装载了所有的程序集和以树状显示每一个类构造函数,方法,属性和事件。这个窗体同样也有一个在我自己的类MyClass1实例按钮单机事件,它可以在运行时被调用。 以下是对这个代码关于每一个类和所使用的方法的解释:

        我给他起的命名空间叫做myreflection. 然后我声明了Myclass1和Myclass2,他们将在More reflection按钮单击事件里被调用。我将在单击按钮之时解释着俩个类,之后我创建了继承自System.Winforms.Form的类testReflection的实例,他的程序集可以在D://WINNT//Microsoft.NET//Framework//v1.0.2204//.找到。你可以找到最近的目录,如果它和你的计算机不同的话。我把所有的程序集路径保存在名为arAssemblyPath的数组里。我曾经使用过System.Winforms.dll 和System.dll并且之后给出了评价,以加速程序装载和卸载。我还申明了Types类型的数组arOfTyps,用于存储所有的form的程序集。我有一个for循环用于加载每一个程序集和获得他们的类型。为了做到这些,我不得不使用程序集System.Reflection这个命名空间,在我们继续之前我们先讨论一下这个类一些知识.

System.Reflection.Assembly:

      它定义了一个可充用的,多版本的集合,并且它自己描述了关于运行时公共语言的创建快。我在这里只准备描述一下我们将用到的一些方法。

      objAssembly = System.Reflection.Assembly.LoadForm(str);

LoadForm这个函数利用path装载程序集,并且返回这个程序集。在装载完之后,我们想要获得程序集所有的类型。这个类提供了GetTypes()函数(他返回一个System.Type 的对象数组),用来返回类型:

afOfTypes = objAssembly.GetTypes(); 接下来让我一起看一下System.Type这个类型。

System.Type:

      这个类代表了类型的申明。(包括类的类型,接口类型,数组类型,值类型和枚举类型)

      它是发射操作的开始。它是访问员数据最初的方法并且同时扮演者访问反射API的关口。它提供方法用于获取类型描述的信息,比如构造函数,属性,方法和事件。

待续。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值