为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用反射来调用私有方法?

如何使用反射来调用私有方法?

呼唤远方 2019-07-19 16:31:04
如何使用反射来调用私有方法?我的类中有一组私有方法,我需要根据输入值动态调用一个方法。调用代码和目标方法都在同一个实例中。代码如下:MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType);dynMethod.Invoke(this, new object[] { methodParams });在这种情况下,GetMethod()不会返回私有方法。什么BindingFlags我需要供应给GetMethod()这样才能找到私有的方法?
查看完整描述

3 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

只需更改代码以使用重载版本GetMethod它接受BindingFlags:

MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, 
    BindingFlags.NonPublic | BindingFlags.Instance);dynMethod.Invoke(this, new object[] { methodParams });



查看完整回答
反对 回复 2019-07-19
?
holdtom

TA贡献1805条经验 获得超10个赞

BindingFlags.NonPublic不会自行返回任何结果。事实证明,把它和BindingFlags.Instance就能做到这一点。

MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, 
    BindingFlags.NonPublic | BindingFlags.Instance);


查看完整回答
反对 回复 2019-07-19
  • 3 回答
  • 0 关注
  • 1183 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信