来自反射新手的问题。我有一个Windows窗体的方法:为什么我不能通过字符串调用这个方法?
private void handleOrderCode()
{
//...do stuff
}
我正努力通过以下方式来调用:
Type t = this.GetType();
MethodInfo mi = t.GetMethod("handleOrderCode");
if (mi != null) mi.Invoke(this, null);
我已经证实,“这个”不为空。字符串“handleOrderCode”已被硬编码的空间在工作时将被替换为字符串变量。但是,目前“mi”在最后一行的if语句中评估时总是为空。
那么我做错了什么?
“this”永远不会为空:) – 2011-04-18 11:21:59
@NimsDotNet:除非您在IL中非虚拟地调用实例方法。它可以做:) – 2011-04-18 11:22:51
是啊,我之前的一个谷歌搜索之前询问强调,有些情况下,奇怪的是,它可以,所以我想我会仔细检查。皮带和大括号等等。 – 2011-04-18 11:37:41