C#动态引用DLL的方法
来源:互联网 发布:剪辑录音软件 编辑:程序博客网 时间:2024/05/14 20:19
http://csidm.com
C#编程中,使用dll调用是经常的事,这样做的好处是非常多的,比如把某些功能封装到一个dll中,然后主程序动态调用这个dll。
废话不多说,举例说明如下。 首先,我们需要封装一个dll,vs2008下建立一个类库,代码如下:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace dll
{
public class addclass
{
public static Int32 add(Int32 i, Int32 j)
{
return i + j;
}
}
}
编译生成 dll.dll ,其中 类名是 addclass, 方法是 add 。 接下来在主程序中调用 这个 dll.dll ,需要先把这个 dll.dll 复制到主程序的 bin\Debug 文件夹下。 动态引用 dll 需要用到 using System.Reflection; 这个反射命名空间。using System.Collections.Generic;
using System.Linq;
using System.Text;namespace dll
{
public class addclass
{
public static Int32 add(Int32 i, Int32 j)
{
return i + j;
}
}
}
private void test()
{
Assembly ass = Assembly.Load("dll"); //加载dll文件
Type tp = ass.GetType("dll.addclass"); //获取类名,必须 命名空间+类名
Object obj = Activator.CreateInstance(tp); //建立实例
MethodInfo meth = tp.GetMethod("add"); //获取方法
int t = Convert.ToInt32( meth.Invoke(obj, new Object[]{2, 3}) ); //Invoke调用方法
MessageBox.Show(t.ToString());
}
上面介绍的是动态调用 dll 的方法,你也可以通过 引用 --> 添加引用(dll.dll)的方法进行前期加载,并配合 using dll的命名空间名称; 来使用。主程序中直接用 int t= addclass.add(2, 3); 就行了。
{
Assembly ass = Assembly.Load("dll"); //加载dll文件
Type tp = ass.GetType("dll.addclass"); //获取类名,必须 命名空间+类名
Object obj = Activator.CreateInstance(tp); //建立实例
MethodInfo meth = tp.GetMethod("add"); //获取方法
int t = Convert.ToInt32( meth.Invoke(obj, new Object[]{2, 3}) ); //Invoke调用方法
MessageBox.Show(t.ToString());
}
- C#动态引用DLL的方法
- C#引用第三方动态连接库dll时出现 System.MissingMethodException: 找不到方法的解决方案
- C#引用动态连接库dll时出现 System.MissingMethodException: 找不到方法的解决方案
- C#动态调用c++DLL的方法
- C#动态调用c++DLL的方法
- C++调用C#的DLL程序方法[引用]
- C#项目引用完全相同dll文件的问题解决方法(反射)
- C#项目引用完全相同dll文件的问题解决方法(反射)
- C# 动态修改dll的签名 以及修改引用该dll文件的签名
- c#引用.dll文件后,如何显示dll里方法的解释
- C#动态调用web服务引用的方法
- 关于C#引用dll动态链接库文件的注释问题
- c#动态加载dll并调用dll中类的方法
- C# 中类库(dll)的创建和引用
- Visual C# 引用 PDFBox的dll
- C#引用dll生成的控件
- C#引用C++开发的DLL
- 如何控制C#引用DLL的位置
- 求最大公约数(利用递归)
- Hibernate多对一和多对一的修改问题
- 数组的引用传递
- RailsCasts中文版,#15 Fun with Find Conditions 使用hash为查询条件以便生成正确语法的SQL查询
- IOS开发之----KVC的使用
- C#动态引用DLL的方法
- C#程序设计(三十)----画线实验
- Sublime Text 2快捷键大全
- 黑马程序员_JAVA_交通灯管理系统学习笔记
- IOS开发之----KVO的使用
- POJ 2728 Desert King
- 2012/11/25
- 第十三周任务——银行。
- POJ 3621 Sightseeing Cows