[英]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.