0
我試圖調用一個函數,它使用C#中的.NET反射兩個參數(一個布爾值和一個字符串)。然而,用下面的代碼我得到一個異常:(「試圖訪問的元素作爲一種類型的與陣列不相容」)如何使用C#中的反射調用具有不同類型參數的方法
object[] paramList = new object[] { true, "Foo" };
Type wsType = typeof(MyWS);
MyWS inst = (MyWS)Activator.CreateInstance(wsType);
MethodInfo method = wsType.GetMethod(function); // function = the name of the function to be called
method.Invoke(inst, paramList);
這將引發ArrayTypeMismatchException。
看來,paramList引起了異常,但我不知道爲什麼?
我試圖調用會是這樣的功能:
public bool EnableSchedule(bool enable, string password)
{
...
}
檢查'function'變量確實包含了接受這兩個參數的函數的名稱。除此之外,你的代碼應該可以工作。 – Groo
數組* *可以包含不同類型的元素,尤其是對象數組。更好地記錄您的問題,顯示您嘗試調用的類型和方法以及異常的堆棧跟蹤。 –
除非您提供「功能」的定義(或至少聲明),它的手來確定哪裏出了問題。錯誤的參數順序?你的函數可能接收(string,bool)而不是(bool,string)? –