祝宇
摘 要 本文通过创建控制台程序,利用.NET提供的映射方法,实现了对Windows窗体程序的操纵。这种方法实现简单,在软件测试领域有一定的应用范围。
关键词 映射,窗体,操纵
Reflection意思为反射,在.NET中,它是获取运行时类型信息的方式。一般来说,.NET的应用程序由三个部分组成,分别是程序集(Assembly)、模块(Module)、类型(class),而反射提供一种编程的方式,让程序员可以在程序运行期获得这三个组成部分的相关信息。
一、与反射有关的知识
1. System.Assembly类
Assembly允许用户访问给定程序集的元数据,它也包含可以加载和执行程序集(程序集可执行的情况下)的方法。这个功能相当强大,可以轻易地取得组件内部所有信息,并且将其应用于映射的机制。常用的有LoadFrom()方法、GetType()方法等。Assembly类可以获得正在运行的装配件信息,也可以动态的加载装配件,以及在装配件中查找类型信息,并创建该类型的实例。
2. System.Type类
Type实际上是一个抽象的基类,它有与每种数据类型对应的派生类,但一般情况下派生类只提供各种Type方法和属性的不同重载,返回对应数据类型的正确数据。它的大多数方法都是用于获取对应数据类型的成员信息,比如:构造函数、属性、方法和事件等,并且能够进行调用。常用的有GetMethod()方法、GetField()方法、GetProperty()方法等。
3. 动态调用方法
方法动态调用是指在执行期利用映射取得的类型方法成员进行动态调用,通过调用实例的Invoke()方法来实现。Invoke方法用以进行方法的动态调用,其一般的定义形式如下:
Invoke(object obj, object[] parameters)
第一个为object类型参数,这个参数对象本身所参考的对象,为所要调用的方法其本身所属的来源对象,而第二个数组对象parameters则是调用指定方法所需的参数集合,若是调用的方法不需传入参数,这个对象数组会参考至一个null值。
|