按名称调用函数并在C#中传递哈希表参数

时间:2013-08-27 18:58:56

标签: c# invoke

我有一个通过名称动态调用其他函数的函数。我需要将哈希表传递给被调用的函数。我有代码在VB.Net中工作,但在尝试将其转换为C#时,我尝试将哈希表作为参数传递时遇到错误。有人可以解释发生了什么以及如何解决它吗?

这是有效的VB.Net代码:

Dim objTF As New ThreadFunctions 
Dim objResults As Object = CallByName(objTF, htParameters.Item("strMethodName"), CallType.Get, htParameters) 

这是C#代码:

ThreadFunctions objTF = new ThreadFunctions();
Type objType = objTF.GetType();
MethodInfo miMethod = objType.GetMethod(htParameters["strMethodName"].ToString());
object objResults = miMethod.Invoke(objTF, htParameters); //This line has the issue

错误1'System.Reflection.MethodBase.Invoke(object,object [])'的最佳重载方法匹配有一些无效的参数

1 个答案:

答案 0 :(得分:3)

尝试

object objResults = miMethod.Invoke(objTF, (object)htParameters);

由于params第二个参数威胁哈希表错误。