我下面有一节课,
namespace PocketWeb.AppClass
{
public class ApiBase
{
public string foo(string s)
{
return s;
}
}
}
我通过下面的System.Reflection.MethodInfo调用,但它导致TargetException:Object与目标类型不匹配。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
var instance_class = Activator.CreateInstance(Type.GetType("PocketWeb.AppClass.ApiBase"));
Type instance_method = instance_class.GetType();
System.Reflection.MethodInfo theMethod = instance_method.GetMethod("foo");
object[] obj = new object[] { "hello" };
Response.Write(theMethod.Invoke(this, obj)); //<---Error
}
}
所以任何想法?我尝试将foo的参数更改为对象,例如:foo(object s){},但它没有帮助。
答案 0 :(得分:17)
Response.Write(theMethod.Invoke(this, obj));
此参数错误,它指的是您的Page类。改为传递instance_class。