[英]Invoke Method with reflection pass through parameters and receive a return value
您好,因為該問題描述了我試圖通過反射來調用方法,這很好,而且如果它是空類型,也可以。 但字符串,布爾等不起作用。 還帶有返回類型。 我一直找不到任何有用的參考。
我有一個測試類,我曾經用它來調用一些測試方法。 所有虛無的人都很好。 但其他人根本沒有打電話。
internal class Test
{
public static void Print()
{
Console.WriteLine("Test");
Console.WriteLine("Testing an invoke method");
}
public static void CalcData()
{
Console.WriteLine("Test");
}
public static void DoSomething(int c, float f)
{
Console.WriteLine("Test");
}
public static string TestString(string s, int p, char f)
{
return "Happy Days";
}
}
在我的主要方法中,我將調用t.GetMethod("Print").Invoke(t, null);
但是我不確定如何調用以傳遞參數甚至獲得返回類型。
在此方面的一些見識將不勝感激。
看一下MethodInfo.Invoke
的簽名
public object Invoke(
object obj,
object[] parameters
)
您需要在parameters
object[]
傳遞方法的parameters
。 注意,該方法返回一個object
,您只需要將其強制轉換為結果類型即可。
調用TestString
應該如下所示:
var parameters = new object[]{"A string", 10, 'a'};
string result = (string) t.GetMethod("Print").Invoke(t, parameters);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.