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

c# 反射使用实例

2007-09-18 13:54 387 查看
 
[align=left]1 创建用于反射使用的DLL[/align]
新建一个C#类库项目,拷贝源代码如下,编译生成DLL(假如DLL的文件名是TestReflect.dll)


 using System;


 namespace Webtest




 ...{




  /**//**//**//// <summary>


  /// ReflectTest 的摘要说明。


  /// </summary>


  public class ReflectTest




  ...{


  public ReflectTest()




  ...{}


  public string WriteString(string s)




  ...{


   return "欢迎您," + s;


  }




  /**//**//**//// <summary>


  /// dsajkjflasjdfalksdjfaskfd


  /// </summary>


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


  /// <returns></returns>


  public static string WriteName(string s)




  ...{


   return "欢迎您光临," + 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;


   }


  }



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