电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> C#>>C#实现反射调用动态加载的DLL文件中的方法:

C#实现反射调用动态加载的DLL文件中的方法

来源:网络 | 2013-4-25 | (有1862人读过)

反射的作用: 
1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型  
2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射。 
3. 反射主要应用与类库,这些类库需要知道一个类型的定义,以便提供更多的功能。  
1 需要反射的DLL 
using 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 "您使用的是无参数方法"; 





应用于反射的例子-在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"}); //实例方法的调用 
或: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; 

C#热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2021 电脑爱好者 版权所有 备案号:鲁ICP备09059398号