最近遇到了在c#中如何进行动态加载dll的话,搞定了,下面介绍一下自己的步骤。

  1,新建dll。

    打开vs,新建project-》Class Library->项目名为testdll1.在新建的项目中,写入自己的方法,然后运行项目,之后在项目的bin/debug中找到一个      testdll1.dll文件.(一定要运行这个工程,不然在bin/debug里不能生成dll文件)

    

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace testdll1 {

public class Class1     {

public static long add(long a,long b)

{

return (a*b);

}

} }

  这样一个简单的dll文件就算完成了。

2,新建一个工程。

    打开vs,新建project-》Winform->项目名为test。这样一个项目算是建立了。接着就是在项目里动态加载dll了。(这里我是在程序里的AppConfig配置文件直接读的,觉得这个以后修改dll,调用方法的话效率会更高点。)

  private void test()
  {
  string path = ConfigurationManager.AppSettings["document"];

  if (!File.Exists(path))
  {
  MessageBox.Show("path is not exist!");
  }
  else
  {
  Assembly ass = Assembly.LoadFrom(ConfigurationManager.AppSettings["document"]); //加载dll文件
  Type tp = ass.GetType(ConfigurationManager.AppSettings["className"]); //获取类名,必须 命名空间+类名
  Object obj = Activator.CreateInstance(tp); //建立实例
  MethodInfo meth = tp.GetMethod(ConfigurationManager.AppSettings["methodName"]); //获取方法
  int t = Convert.ToInt32(meth.Invoke(obj, new Object[] { 4, 3 })); //Invoke调用方法
  }
  }

3,从AppConfig里读加载文件,获取的类名,以及方法。        

    <appSettings >
      <add key = "document" value = "C:\Users\Administrator\Desktop\33\test3dll.dll" /> (加载文件的路径+文件)
      <add key = "className" value = "test3dll.Class2" /> (获取的类名)
      <add key = "methodName" value = "add" />  (获取方法)
    </appSettings>

ok,这就是一个简单的动态加载dll文件的过程了。技术有限,若有更好的方法,求赐教。

最新文章

  1. Oracle手工创建数据库
  2. 骨骼动画的实现(OpenGL实现)
  3. php将文件转换成二进制输出[转]
  4. Xcode注释插件 VVDocumenter 升级Xcode6.x 失效的解决办法
  5. java 中 equals和==的区别
  6. SQLServer2008 行转列2
  7. DataSet DataTable操作
  8. js 定义函数的几种方法 以及如何调用
  9. Java_.jar .war .ear 详解
  10. gcc 的编译过程
  11. 本地存储 web storage
  12. java面试题之分析(二)
  13. scrapy的一些容易忽视的点(模拟登陆,传递item等)
  14. liunx 安装 mysql 5.6
  15. phpcms内容页替换
  16. qt tableWidget 表格控件使用
  17. Invoke 和 BeginInvoke 的区别
  18. 简单html弹窗
  19. Python小功能汇总
  20. 基于python复制蓝鲸作业平台

热门文章

  1. web技术栈开发原生应用-多端共用一套代码
  2. 使用GitHub搜索技巧
  3. python3对字符串进行base64转码
  4. [Cocos Creator]安卓上微信小游戏加载到100%就进不去了
  5. 换个语言学一下 Golang (12)——Web基础
  6. 5.Javascript闭包得实现原理和作用
  7. ASP.NET Core中返回 json 数据首字母大小写问题
  8. vue与webpack开发环境搭建:从无到有
  9. AI涉及到数学的一些面试题汇总
  10. centos7配置jdk8环境变量