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) });//匹配调用函数的参数类型和个数

相关推荐
何以解忧,唯有..17 小时前
Python 字符串完全指南:从基础到高级操作
开发语言·python
kiss strong17 小时前
自制请求工具
开发语言·python·lua
scan72417 小时前
短期记忆记忆存储在内存里,一个会话里的多轮对话
开发语言·c#
JaydenAI17 小时前
[MAF预定义Agent中间件-01]LoggingAgent——在Agent调用前后输出日志
ai·c#·agent·maf·agent管道·agent中中间件
JaydenAI17 小时前
[MAF预定义的AIContextProvider-10]TodoProvider——用TodoList驱动Agent的任务执行
ai·c#·agent·maf
qq_3692243317 小时前
电脑提示xinput1_4.dll文件缺失或损坏?故障原因全方位解析与终极修复方案
电脑·dll·dll修复·dll错误
程序员皮皮林17 小时前
Dubbo 的 SPI 和 JDK 的 SPI 有什么区别?
java·开发语言·dubbo
是多巴胺不是尼古丁17 小时前
java‘期末复习--多态
java·开发语言
abcy07121318 小时前
sqlalchemy 原生sql判断条件是否为空,为空则跳过
开发语言·python
.千余18 小时前
【C++】深挖STL list底层:解迭代器与节点存储逻辑
开发语言·c++·笔记·学习·其他