动态加载类和调用函数

本文关键字:调用 函数 加载 动态 | 更新日期: 2023-09-27 18:19:33

我的项目中有大约80-90个类,每个类都有一个函数,用于计算并返回一些值。

假想类名->AAB、AAC。。。。ZZZ

它们的函数类似于:CalAAB(double[]param1,int param2)。。依此类推。

我计划制作一个程序来创建一个程序,用户可以选择任何一个或两个类,一些操作/计算将通过用户选择的类的功能来完成。

我可以在If else的帮助下,甚至在switch的帮助下完成上述任务,但这限制了我通过混合3-4个类来进行复杂的查询,程序会太长。

是否可以将这些类和函数的名称保存到文本文件中,然后根据用户的选择加载类和函数

我的主要要求是如何执行线下

ClassName cname = new ClassName(); 
double [] result = cname.FunctionName(Param1, Param2);

其中ClassName和FunctionName将作为字符串从文本文件加载

动态加载类和调用函数

您需要使用反射。像这样的。。

Assembly assembly = Assembly.LoadFile("YourAssembly.dll");
Type type = assembly.GetType("NameSpace.AAB"); 
var aabInstance = Activator.CreateInstance(type, null);
MethodInfo methodInfo = type.GetMethod("CalAAB");
var result = methodInfo.Invoke(classInstance, param1, param2);