首页 >后端开发 >C++ >如何使用C#中的反射调用私人方法?

如何使用C#中的反射调用私人方法?

Linda Hamilton
Linda Hamilton原创
2025-01-25 05:21:09509浏览

How Can I Invoke Private Methods Using Reflection in C#?

利用反射调用C#私有方法

动态调用私有方法,尤其当方法名基于输入值变化时,需要用到反射技术。GetMethod() 方法默认只获取公共方法,忽略私有方法。要访问私有方法,需向 GetMethod() 函数添加 BindingFlags

需要组合 BindingFlags.NonPublicBindingFlags.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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn