C#实现反射调用动态加载的DLL文件中的方法
2010-03-03 01:49
1046 查看
C#实现反射调用动态加载的DLL文件中的方法
from:http://hi.baidu.com/mkjmmc/blog/item/b5c3192ad2d2de3b5243c141.html
反射的作用:
1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型
2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射。
3. 反射主要应用与类库,这些类库需要知道一个类型的定义,以便提供更多的功能。
1 需要反射的DLL
应用于反射的例子-在ASPNET页面中加入以下函数:
from:http://hi.baidu.com/mkjmmc/blog/item/b5c3192ad2d2de3b5243c141.html
反射的作用:
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#实现反射调用动态加载的DLL文件中的方法
- C#实现反射调用动态加载的DLL文件中的方法
- C#实现反射调用动态加载的DLL文件中的方法
- C#实现反射调用动态加载的DLL文件中的方法
- C#实现反射调用动态加载的DLL文件中的方法
- c# 动态加载dll文件,并实现调用其中的简单方法
- c# 动态加载dll文件,并实现调用其中的方法
- c# 动态加载dll文件,并实现调用其中的方法(推荐)
- C#,动态加载DLL,通过反射,调用参数,方法,窗体
- c# 创建DLL,动态加载dll文件,并调用其中的方法(转自CFEI.NET)
- C#反射动态调用dll中的方法及使用QuartZ.net实现作业调度
- dll动态链接库之用类写配置文件和调用判断方法接口的实现中遇到的若干问题
- C#反射动态调用dll中的方法,并返回结果
- C#中调用DLL时未能加载文件或程序集错误的处理方法(详解)
- C#程序实现动态调用非托管的DLL文件
- C#反射动态调用dll中的方法,并返回结果
- C# 通过反射类动态调用DLL方法
- c#动态加载dll并调用dll中类的方法
- C#程序实现动态调用非托管的DLL文件
- C#反射动态调用dll中的方法,并返回结果