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

相关推荐
天天进步20152 小时前
UI-TARS 源码解析 #4:UI-TARS 与传统 RPA 的区别:为什么它不是简单的坐标点击脚本?
开发语言
运维行者_2 小时前
广域网性能监控:分布式IT架构下的链路质量保障
开发语言·网络·分布式·后端·架构·数据库架构
梅雅达编程笔记2 小时前
零基础学 Python 第7章 | 字典 dict:键值对存储
开发语言·python·beautifulsoup·numpy·pandas
灯澜忆梦2 小时前
GO---map函数
开发语言·前端·后端·golang
北冥you鱼3 小时前
Go语言与默克尔树:区块链数据完整性的基石
开发语言·golang·区块链
库克克3 小时前
【C++】类和对象--this指针详解
java·开发语言·c++
JackieZhengChina4 小时前
image-viewer-js 开源图片查看插件完整教程
开发语言·javascript·开源
光影少年4 小时前
react的View/Text/Image/ScrollView 常用组件注意事项
开发语言·前端·javascript·react.js·前端框架
Sayuanni%34 小时前
Spring Aop
java·开发语言
库克克5 小时前
【C++】类和对象--类对象模型与大小计算
开发语言·jvm·c++