<经验杂谈>C#中一种最简单、最基本的反射(Reflection):通过反射获取方法函数

时间:2021-02-13 14:49:14

说起反射之前和很多用C#/.net的同仁们一样,相比于一般应用层对数据的增删改查总有点觉得深奥到难以理解。其实程序这东西,用过、实践过就很简单,我一直这么认为。

先说下概念:反射 Reflection是.Net中获取运行时类型信息的方式,.Net的应用程序主要由:程序集(Assembly),模块(Module),类型(class)组成,而发射提供一种编程的方式,可以在程序运行时获取这几部分的信息。

Assembly可以获取正在运行的装配信息,也可以动态加载装配件以及在装配中查找类型信息,并创建该类型的实例。MethodInfo,通过这个类可以得到方法的名称、参数、返回值等。类似的还有FileInfo、EventInfo...

反射的简单运用:通过反射获取方法函数

    String methodName ="SampleMethodName";
Type type = this.GetType();
MethodInfo method = type.GetMethod(methodName);
if (method == null) throw new Exception("method is null");
method.Invoke(this, null); //反射执行函数
public void SampleMethodName()
{
// to do something
}