我的项目中有大约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将从文本文件加载为字符串
答案 0 :(得分:3)
您需要使用Reflection。像这样......
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);