c# 如何调用指定文件夹里面的动态库dll

最近写代码时遇到了调用指定文件夹里面的dll的情况,在此总结一下:

一、我这里使用的方法是,Assembly 和 MethodInfo,代码如下:

Assembly myAssembly = Assembly.LoadFrom(dllPath);//dllPath是dll文件所在的文件夹

Type myType = myAssembly.GetType("mydll.TestCall");//mydll:namespace的名字,TestCall:类名

object myInstance = Activator.CreateInstance(myType);

MethodInfo myMethod = myType.GetMethod("testFunc");//testFunc:函数名

object returnValue = myMethod.Invoke(myInstance, new string[] { "", "" }); // 如果不需要参数,使用null,否则提供适当的参数数组,这里函数testFunc是两个string类型的参数

返回值returnValue,如果没有返回值,返回的是null

二、如果dll文件里面有重载函数话,处理如下,主要是GetMethod函数需要变动:

比如函数testFunc存在两个string参数 和 三个string参数的重载函数,那么,调用三个参数时,代码如下:

MethodInfo myMethod2 = myType.GetMethod("testFunc", new Type[] { typeof(String), typeof(String), typeof(String) });//匹配调用函数的参数类型和个数

相关推荐
2401_8384725120 小时前
C++中的访问者模式
开发语言·c++·算法
csbysj202020 小时前
《Foundation 开关:深度解析其原理与应用》
开发语言
梦里小白龙21 小时前
java 通过Minio上传文件
java·开发语言
m0_5613596721 小时前
基于C++的机器学习库开发
开发语言·c++·算法
星空露珠21 小时前
速算24点所有题库公式
开发语言·数据库·算法·游戏·lua
2401_8324027521 小时前
C++中的类型擦除技术
开发语言·c++·算法
努力学习的小廉21 小时前
我爱学算法之—— 递归回溯综合(二)
开发语言·算法
sheji526121 小时前
JSP基于信息安全的读书网站79f9s--程序+源码+数据库+调试部署+开发环境
java·开发语言·数据库·算法
2301_7634724621 小时前
C++网络编程(Boost.Asio)
开发语言·c++·算法
毕设源码-邱学长21 小时前
【开题答辩全过程】以 基于Java Web的电子商务网站的用户行为分析与个性化推荐系统为例,包含答辩的问题和答案
java·开发语言