反射的作用:
1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型 2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射。3. 反射主要应用与类库,这些类库需要知道一个类型的定义,以便提供更多的功能。 1 需要反射的DLLusing System;namespace Webtest{ public class ReflectTest{ public ReflectTest(){}public string WriteString(string s){ return "欢迎您," + s;}//静态函数public static string WriteName(string s){ return "欢迎您光临," + s;}//不带参数的函数public string WriteNoPara(){ return "您使用的是无参数方法";}}}应用于反射的例子-在NET页面中加入以下函数:public void test1(){ System.Reflection.Assembly ass;Type type ;object obj;try{ ass = System.Reflection.Assembly.LoadFile(@"d:\TestReflect.dll");//要绝对路径type = ass.GetType("Webtest.ReflectTest");//必须使用 名称空间+类名称System.Reflection.MethodInfo method = type.GetMethod("WriteString");//方法的名称obj = ass.CreateInstance("Webtest.ReflectTest");//必须使用名称空间+类名称string s = (string)method.Invoke(obj,new string[]{"jianglijun"}); // 实例方法的调用或:string s = (string)method.Invoke(obj,Object[] parametors = new Object[]{"param"}); Response.Write(s+"<br>");method = type.GetMethod("WriteName");//方法的名称s = (string)method.Invoke(null,new string[]{"jianglijun"}); // 静态方法的调用Response.Write(s+"<br>");method = type.GetMethod("WriteNoPara");//无参数的实例方法s = (string)method.Invoke(obj,null);Response.Write(s+"<br>");method = null;}catch(Exception ex){ Response.Write(ex+"<br>");}finally{ ass = null;type = null;obj = null;}}