在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
using System.Reflection;
1.载入Dll Assembly asm=Assembly.LoadFile(FullPath);//FullPath 为Dll所在位置的全路径。
2.取得所需要的类的类型 Type t = asm.GetType("namespaceName.className");//命名空间名.类名
3.建立此类型的对象(相当于 new) object o = Activator.CreateInstance(t); //创建Type t类型的对象
4.取得类中想要执行的方法 MethodInfo me = t.GetMethod("TestFunction");
5.取得此方法所需参数列表 ParameterInfo[] para=me.GetParameters();
6.创建参数类型的对象,并传入参数Array Type re = asm.GetType("TestDll.ReturnClass"); //我的参数类型是TestDll命名空间下 ReturnClass类
object reo = Activator.CreateInstance(re);
object[] r = { reo };
7.调用函数 Object rr = me.Invoke(o, r); //如果调用的是非异步函数,此时object rr就是函数的返回值。
8.如果调用的是异步函数 Task task = me.Invoke(o, r) as Task;
await task;
object result = task.GetType().GetProperty("Result").GetValue(task, null); //result就是异步函数的返回值
9.反射常用操作 //取得o实例中propertyName属性的值value 10.总结 大概就是,在你不知道Dll的内部结构的情况下,可以通过反射获得Dll内所有信息
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论