У меня есть функция, которая динамически вызывает другие функции через имя. Мне нужно передать хэш-таблицу вызываемой функции. У меня есть код, работающий в VB.Net, но, пытаясь преобразовать его в C#, я столкнулся с ошибкой, когда пытаюсь передать хеш-таблицу в качестве параметра. Может кто-нибудь объяснить, что происходит и как я могу это решить?Вызовите функцию по имени и передайте параметр hashtable в 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 (объект, объект []) 'имеет некоторые недействительные аргументы
Я сделал изменения и ошибки по-прежнему * Ошибка \t \t 1 Лучший перегружен матч метод «System.Reflection.MethodBase.Invoke (объект, объект [])» имеет некоторые недопустимые аргументы * –
Почти есть: объект objResults = miMethod.Invoke (objTF, новый объект [] {htParameters}); – Alex
Спасибо, Алекс, это сработало! –