我对反射完全陌生,我试图从数据库记录中调用一个类名,然后加载该类并运行它,但我正在把我的头发拉到我要去的地方,这可能真的很愚蠢我迷路了。
作为示例,我将我的类放在不同的项目和脚本文件夹中,然后从 db 记录中调用它的名称。
className = String.Format("Utilities.Scripts.{0}", script.ScriptClass);
然后在我的主程序中
// Get a type from the string
Type type = Type.GetType(className);
// Create an instance of that type
Object obj = Activator.CreateInstance(type);
// Retrieve the method you are looking for
MethodInfo methodInfo = type.GetMethod("start");
// Invoke the method on the instance we created above
methodInfo.Invoke(obj, null);
但是我得到了错误,因为在调试时我可以看到我的详细信息传递到 GetType(className) 但没有任何东西进入类型,因此进入出错的 obj 。