C# 动态态引用DLL的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 动态态引用DLL的方法相关的知识,希望对你有一定的参考价值。

首先,我们需要封装一个dll,vs2008下建立一个类库,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using 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; 这个反射命名空间。

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); 就行了。

System.Text;
namespace dll
{
    public class addclass
    {
        public static Int32 add(Int32 i, Int32 j)
        {
            return i + j;
        }
    }
}

 

以上是关于C# 动态态引用DLL的方法的主要内容,如果未能解决你的问题,请参考以下文章

C#将DLL嵌入到exe当中

C#中如何调用动态链接库DLL

单例模式 静态库和动态库的区别

Visual Studio中根据系统区分引用64位32位DLL动态库文件的配置方法

怎么在C#中添加用C语言开发的动态链接库dll文件(vs2010)?

C#将引用的dll嵌入到exe文件中