我創建了一個叫做input
實例,它是類型:C#反射調用 - 類型「XXX」的對象不能轉換爲類型「System.Object的[]」
public class TestInput
{
public int TesTInt { get; set; }
}
我在這個函數中使用:
public static class TestClass
{
public static string TestFunction()
{
var testInput = new TestInput();
string res = ServicesManager.Execute<string>((object) testInput);
return res;
}
}
的Execute
功能是在這裏:
public static OUT Execute<OUT>(object input)
where OUT : class
{
var method = //getting method by reflection
object[] arr = new object[] { input };
return method.Invoke(null, arr) as OUT; //Error is triggered here
}
,我調用是THI的方法s:
public static string TestFunctionProxy(object[] input)
{
var serviceInput = input[0] as TestInput;
//rest of code
}
我在標題中收到錯誤。 (XXX - 「TestInput」類型)
發生了什麼以及是什麼導致了此錯誤?
注意:method
是靜態的,因此第一個參數不需要實例。如果我錯了,請糾正我。
任何幫助表示讚賞。
編輯:用一些更多的代碼更新了問題的完整例子。
如果您提供了一個簡短的*完整的*示例,那將會更容易幫助您。我也懷疑錯誤消息中沒有包含「XXX」。我們不知道你在哪裏得到錯誤... –
@JonSkeet不夠公平,會更新問題。 –
將對象作爲對象並將其轉換爲對象的對象是兩件不同的事情。您的方法期望獲得哪些*精確*參數類型? – Crono