0

我有一个通过名称动态调用其他函数的函数。我需要将哈希表传递给被调用的函数。我的代码在 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[])' 的最佳重载方法匹配有一些无效参数

4

1 回答 1

3

尝试

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

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

于 2013-08-27T19:02:06.460 回答