标准
仅呼叫公共,受保护和内部方法。要访问私有方法,您必须使用GetMethod()
的超载版本并指定正确的GetMethod()
。
BindingFlags
解决方案:
BindingFlags
GetMethod()
此代码代码摘要检索私有方法(使用“ draw_” itemType动态命名),然后使用
<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance); dynMethod.Invoke(this, new object[] { methodParams });</code>
理解绑定flags:dynMethod.Invoke()
至关重要:BindingFlags
>
BindingFlags.NonPublic
BindingFlags.Instance
BindingFlags.NonPublic
更多关于bindingflags的信息:BindingFlags.Instance
这种方法允许开发人员从同一类实例中动态调用私有方法,为类成员的高级运行时操作打开了可能性。以上是如何在C#中使用反射调用私人方法?的详细内容。更多信息请关注PHP中文网其他相关文章!