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

相关推荐
吠品1 分钟前
PHP里取月份最后一天的几种方式
java·开发语言·eureka
CallmeFoureyes2 分钟前
使用 C# 提取 Word 文档中的表格数据
开发语言·c#·word
gugucoding19 分钟前
2. 【Java】搭建Java开发环境
java·开发语言
多加点辣也没关系19 分钟前
JavaScript|第9章:对象 — 基础
开发语言·javascript·ecmascript
2601_9498180926 分钟前
Vector从入门到应用(C++ STL动态数组万字全解
开发语言·c++
汤米粥1 小时前
Python爬虫中Xpath用法之——normalize-space()
开发语言·python
科技道人1 小时前
记录 设置-显示大小和字体
开发语言·android设置·字体和显示大小
浮江雾1 小时前
Flutter第三节----Dart中的数据类型
android·开发语言·学习·flutter·入门·函数
weixin_422329312 小时前
AgentScope Java 项目入门 & Builder 深度解读
java·开发语言·人工智能
chh5632 小时前
C++--list
开发语言·数据结构·c++·学习·算法·list