我有一个通过名称动态调用其他函数的函数。我需要将哈希表传递给被调用的函数。我有代码在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 [])'的最佳重载方法匹配有一些无效的参数
答案 0 :(得分:3)
尝试
object objResults = miMethod.Invoke(objTF, (object)htParameters);
由于params
第二个参数威胁哈希表错误。