您的位置:首页 > 编程语言 > C#

C#反射实例讲解

2010-02-02 21:58 344 查看
1 创建用于反射使用的DLL

新建一个C#类库项目
,拷贝源代码
如下,编译
生成DLL(假如DLL的文件名是TestReflect.dll)

1using System;

2

3namespace Web
test

4{

5 /**//// <summary>

6 /// ReflectTest 的摘要说明。

7 /// </summary>

8 public class ReflectTest

9 {

10 public ReflectTest()

11 {}

12

13 public string WriteString(string s)

14 {

15 return "欢迎您," + s;

16 }

17

18 /**//// <summary>

19 /// dsajkjflasjdfalksdjfaskfd

20 /// </summary>

21 /// <param name="s"></param>

22 /// <returns></returns>

23 public static string WriteName(string s)

24 {

25 return "欢迎您光临," + s;

26 }

27

28 public string WriteNoPara()

29 {

30 return "您使用的是无参数方法";

31 }

32 }

33}

34

35

36

2 应用于反射的例子

在ASPNET
页面
中加入以下函数


1public void test1()

2 {

3 System.Reflection.Assembly ass;

4 Type type ;

5 object obj;

6 try

7 {

8 ass = System.Reflection.Assembly.LoadFile(@"d:/TestReflect.dll");

9 type = ass.GetType("Webtest.ReflectTest");//必须使用名称空间+类名称

10 System.Reflection.MethodInfo method = type.GetMethod("WriteString");//方法的名称

11 obj = ass.CreateInstance("Webtest.ReflectTest");//必须使用名称空间+类名称

12 string s = (string)method.Invoke(obj,new string[]{"jianglijun"}); //实例方法的调用

13

14 Response.Write(s+"<br>");

15 method = type.GetMethod("WriteName");//方法的名称

16 s = (string)method.Invoke(null,new string[]{"jianglijun"}); //静态方法的调用

17 Response.Write(s+"<br>");

18

19 method = type.GetMethod("WriteNoPara");//无参数的实例方法

20 s = (string)method.Invoke(obj,null);

21 Response.Write(s+"<br>");

22 method = null;

23 }

24 catch(Exception ex)

25 {

26 Response.Write(ex+"<br>");

27 }

28 finally

29 {

30 ass = null;

31 type = null;

32 obj = null;

33 }

34 }

35
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: