如题,
我们都知道通过C#的反射机制可以获取未知类型的属性值,
比如:
propertyInfo.GetValue(obj, null).ToString();
现在我想通过反射获取未知类型的方法返回值怎么弄?
可以通过methodInfo.Invoke(obj, null)获取到返回到对象是object类型的,
可是怎么获取他的返回值呢,比如说返回值类型是string的??请大家帮帮忙,谢谢了
我们都知道通过C#的反射机制可以获取未知类型的属性值,
比如:
propertyInfo.GetValue(obj, null).ToString();
现在我想通过反射获取未知类型的方法返回值怎么弄?
可以通过methodInfo.Invoke(obj, null)获取到返回到对象是object类型的,
可是怎么获取他的返回值呢,比如说返回值类型是string的??请大家帮帮忙,谢谢了
object类型你强制类型转换次就可以了
value = (string)methodInfo.Invoke(obj, null);
{
private int Add(int arg0, int arg1, int arg2)
{
return arg0 + arg1 + arg2;
}
}
class Program
{
internal static int CallAdd()
{
object target = Assembly.GetExecutingAssembly().CreateInstance("NameSpace.Reflect", true); Type type = target.GetType();
MethodInfo methodInfo = type.GetMethod("Add", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
if (methodInfo == null)
return 0;
object[] args = new object[] { 10, 20, 30 };
object result = methodInfo.Invoke(target, args);
return Convert.ToInt32(result);
}
}参考