你好,因为问题描述我试图通过反射调用一个方法,这很好,如果它是一个void类型的话。但是字符串,bool等不起作用。也有返回类型。我还没有找到任何有用的参考资料。
我有一个测试类,我曾经调用过一些测试方法。所有虚空的都工作得很好。但其他人根本没有打电话。
t.GetMethod("Print").Invoke(t, null);
在我的主要方法中,我会打电话给/location/to/something
但我不确定如何调用传递参数甚至获取返回类型。
对此的一些见解将不胜感激。
答案 0 :(得分:2)
public object Invoke(
object obj,
object[] parameters
)
您需要在parameters
object[]
中传递方法的参数。请注意,该方法返回object
,您只需将其强制转换为结果类型。
对TestString
的调用应如下所示:
var parameters = new object[]{"A string", 10, 'a'};
string result = (string) t.GetMethod("Print").Invoke(t, parameters);