我得到一個錯誤Parameter count mismatch.
嘗試調用的方法在另一類上線val = (bool)method.Invoke(instance, args);
Invoke方法與參數給出錯誤
的方法只有一個參數,(我認爲)我傳遞一個參數時作爲一個對象,所以不知道爲什麼我得到錯誤。
請有人建議我的代碼有什麼問題嗎?
class firstClass
{
public bool MethodXYZ(System.Windows.Forms.WebBrowser Wb,
string debug_selectedOption)
{
object[] args = new object[] { Wb, debug_selectedOption };
string methodToInvoke = System.Reflection.MethodBase.GetCurrentMethod().Name;
return runGenericMethod(methodToInvoke, args);
}
private bool runGenericMethod(string methodToInvoke, object[] args)
{
bool val = false;
string anotherClass = args[1].ToString();
Type t = Type.GetType("ProjectXYZ." + anotherClass);
MethodInfo method = t.GetMethod(methodToInvoke);
var constructorInfo = t.GetConstructor(new Type[0]);
if (constructorInfo != null)
{
object instance = Activator.CreateInstance(t);
val = (bool)method.Invoke(instance, args);
}
//........
return val;
}
}
class anotherClass
{
public bool MethodXYZ(object[] args)
{
return true;
}
}
爲什麼要將類名存儲在參數數組的第二個位置?另外,當你在測試中調用它時,你實際上傳遞給了這個函數的是什麼? – Servy
我傳遞一個web瀏覽器對象和要調用的方法。 – user3357963
這不是我的問題的答案。什麼是您傳遞的字符串的實際值,以及對象數組的內容是什麼。 – Servy