C# 有没有从字符串调用函数的方法?

C# 有没有从字符串调用函数的方法?,c#,C#,我想获取一个字符串,比如“driverLib.GetTotalRecordCount(\“name\u of\u table\”)”,并像函数调用一样运行它 我遵循了这篇文章的说明: 但是我得到一个错误,说MySQLLib中不存在该函数 代码: MySQLLib driverLib = new MySQLLib(); string funcName = "driverLib.GetTotalRecordCount"; string userParam = "\&

我想获取一个字符串,比如
“driverLib.GetTotalRecordCount(\“name\u of\u table\”)”
,并像函数调用一样运行它

我遵循了这篇文章的说明:

但是我得到一个错误,说MySQLLib中不存在该函数

代码

MySQLLib driverLib = new MySQLLib();

string funcName = "driverLib.GetTotalRecordCount";
string userParam = "\"name_of_table\"";

// Code from the link 
Type thisType = this.GetType();
MethodInfo theMethod = thisType.GetMethod(funcName);
theMethod.Invoke(this, userParam);

你看过反思教程了吗?查看此博客:

您可以做的是打印MySQLLib的所有方法的名称并对其进行调试:

Type type = typeof(MySQLLib);

MethodInfo[] methodInfo = type.GetMethods();

foreach(var method in methodInfo)
{
    Console.Writeline(method.Name);
}

在google上搜索“.net expression evaluator”或类似的内容。您正在尝试调用
MySQLLib
上的方法。您确定该方法在
MySQLLib
中可用吗?此行
Console.WriteLine(funcCall)//driverLib.GetTable1Data(“表的名称”,参考列表)
也无法打印您在注释中显示的内容。您指的是在MySQLLib中定义为属性的类“driverlib”?为什么不使用typeof(myslib.driverlib)?为什么是“driverlib”第一个参数中需要前缀..?您不需要对象的名称,在使用
Activator.CreateInstance
时创建了对象的新实例,并将创建的对象引用存储在
obj
变量中。如果要在
driverLib
上调用该方法,则需要将其传入
InvokeMember
代替
obj
InvokeMember
对上下文一无所知,因此它不知道什么是
driverLib
。您没有理解教程,这是您的问题。