我的课程中有一组私有方法,我需要根据输入值动态调用一个。调用代码和目标方法都在同一实例中。代码如下:
MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType); dynMethod.Invoke(this, new object[] { methodParams });
在这种情况下,GetMethod()将不会返回私有方法。BindingFlags我需要提供什么GetMethod()以便它可以定位私有方法?
GetMethod()
BindingFlags
只需更改您的代码以使用接受BindingFlags 的重载版本GetMethod:
GetMethod
MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance); dynMethod.Invoke(this, new object[] { methodParams });
这是BindingFlags枚举文档。