我的类中有一组私有方法,我需要根据输入值动态调用一个方法。调用代码和目标方法都在同一个实例中。代码如下所示:
MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType);
dynMethod.Invoke(this, new object[] { methodParams });
在这种情况下,GetMethod()
不会返回私有方法。什么BindingFlags
我需要提供给GetMethod()
这样它就可以找到私有方法?
只需更改您的代码即可使用重载的的版本GetMethod http://msdn.microsoft.com/en-us/library/system.type.getmethod.aspx接受 BindingFlags:
MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType,
BindingFlags.NonPublic | BindingFlags.Instance);
dynMethod.Invoke(this, new object[] { methodParams });
这是BindingFlags 枚举文档 http://msdn.microsoft.com/en-us/library/system.reflection.bindingflags.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)