利用反射调用C#私有方法
动态调用私有方法,尤其当方法名基于输入值变化时,需要用到反射技术。GetMethod()
方法默认只获取公共方法,忽略私有方法。要访问私有方法,需向 GetMethod()
函数添加 BindingFlags
。
需要组合 BindingFlags.NonPublic
和 BindingFlags.Instance
两个标志。这将包含当前实例范围内的非公共(私有)方法。
修改后的代码如下:
<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance); dynMethod.Invoke(this, new object[] { methodParams });</code>
这段代码将成功检索私有方法 "Draw_" 并使用提供的参数调用它。
更多关于反射和 BindingFlags
的信息,请参考以下文档:
以上是如何使用C#中的反射调用私人方法?的详细内容。更多信息请关注PHP中文网其他相关文章!