C#反射实例讲解

C#反射实例讲解

 

1 创建用于反射使用的DLL

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

 1 using  System;
 2
 3 namespace  Webtest
 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页面中加入以下函数:

 1 public   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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值