C#反射机制,反射使用实例来源: 发布时间:星期二, 2008年9月16日 浏览:444次 评论:0
接上回
创建一个C#反射的实例
1 创建用于反射使用的DLL
新建一个C#类库项目,拷贝源代码如下,编译生成DLL(假如DLL的文件名是TestReflect.dll) using System;
namespace CrazyCoder.Reflect { /**//// <summary> /// ReflectTest 的摘要说明。 /// </summary> public class ReflectTest { public ReflectTest() {} public string WriteString(string s) { return "欢迎您," + s; } /**//// <summary> /// 反射的一个方 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string WriteName(string s) { return "欢迎您光临,Crazycoder.cn" + s; } public string WriteNoPara() { return "您使用的是无参数方法"; } } } 2 应用于反射的例子 在ASPNET页面中加入以下函数: 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"}); //实例方法的调用 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; } } 0
相关文章读者评论发表评论 |
|