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
。您没有理解教程,这是您的问题。