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

2024-03-28

我的类中有一组私有方法,我需要根据输入值动态调用一个方法。调用代码和目标方法都在同一个实例中。代码如下所示:

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

在这种情况下,GetMethod()不会返回私有方法。什么BindingFlags我需要提供给GetMethod()这样它就可以找到私有方法?


只需更改您的代码即可使用重载的的版本GetMethod http://msdn.microsoft.com/en-us/library/system.type.getmethod.aspx接受 BindingFlags:

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

这是BindingFlags 枚举文档 http://msdn.microsoft.com/en-us/library/system.reflection.bindingflags.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用反射来调用私有方法? 的相关文章

  • C# 中四舍五入到偶数

    我没有看到 Math Round 的预期结果 return Math Round 99 96535789 2 MidpointRounding ToEven returning 99 97 据我了解 MidpointRounding ToE
  • 用户控件内所有控件均为空

    我有一个 UserControl 它使用 UserControl 以及其他控件 In the ascx文件我有以下代码
  • 无法从 Web api POST 读取正文数据

    我正在尝试从新的 Asp Net Web Api 中的请求中提取一些数据 我有一个像这样的处理程序设置 public class MyTestHandler DelegatingHandler protected override Syst
  • 从 future 中检索值时的 SIGABRT

    我在使用 C 11 future 时遇到问题 当我打电话时wait or get 关于返回的未来std async 程序接收从mutex标头 可能是什么问题呢 如何修复它 我在 Linux 上使用 g 4 6 将以下代码粘贴到 ideone
  • Qt 计算和比较密码哈希

    目前正在 Qt 中为测验程序构建面向 Web 的身份验证服务 据我了解 在数据库中存储用户密码时 必须对其进行隐藏 以防落入坏人之手 流行的方法似乎是添加的过程Salt https en wikipedia org wiki Salt cr
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • C# datagridview 列转入数组

    我正在用 C 构建一个程序 并在其中包含一个 datagridview 组件 datagridview 有固定数量的列 2 我想将其保存到两个单独的数组中 但行数确实发生了变化 我怎么能这样做呢 假设一个名为 dataGridView1 的
  • 手动将 ClientBase 集合类型从 Array[] 更改为 List<>

    我将自己的 WCF 代理与 Client Base 一起使用 我想做一些类似于 svc util 中的 ct 属性的操作 并告诉代理返回 List 集合类型 我不能使用 List 因为实体由 nhibernate 管理 所以我必须使用 IL
  • 操纵 setter 以避免 null

    通常我们有 public string code get set 如果最终有人将代码设置为 null 我需要避免空引用异常 我尝试这个想法 有什么帮助吗 public string code get set if code null cod
  • 无法加载文件或程序集“EntityFramework,版本=6.0.0.0”

    我究竟做错了什么 我该如何解决这个问题 我有一个包含多个项目的解决方案 它是一个 MVC NET 4 5 Web 应用程序 在调试模式下启动后调用其中一个项目时 出现此错误 导致此错误的项目具有以下参考 两个都是版本6 0 0 0 应用程序
  • C#中Enum中定义的value__是什么

    What value 可能在这里 value MSN ICQ YahooChat GoogleTalk 我运行的代码很简单 namespace EnumReflection enum Messengers MSN ICQ YahooChat
  • 如何用 C 语言练习 Unix 编程?

    经过五年的专业 Java 以及较小程度上的 Python 编程并慢慢感觉到我的计算机科学教育逐渐消失 我决定要拓宽我的视野 对世界的一般用处 并做一些 对我来说 感觉更重要的事情就像我真的对机器有影响一样 我选择学习 C 和 Unix 编程
  • 错误左值需要作为赋值C++的左操作数

    整个程序基本上只允许用户移动光标 如果用户位于给定的坐标范围 2 2 内 则允许用户键入输入 我刚刚提供了一些我认为足以解决问题的代码 我不知道是什么导致了这个问题 你能解释一下为什么会发生吗 void goToXY int int 创建一
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • “int i=1,2,3”和“int i=(1,2,3)”之间的区别 - 使用逗号运算符的变量声明[重复]

    这个问题在这里已经有答案了 int i 1 2 3 int i 1 2 3 int i i 1 2 3 这些说法有什么区别 我无法找出任何具体原因 Statement 1 Result Compile error 运算符的优先级高于 运算符
  • TPL 数据流块下游如何获取源生成的数据?

    我正在使用 TPL Dataflow 处理图像 我收到处理请求 从流中读取图像 应用多次转换 然后将生成的图像写入另一个流 Request gt Stream gt Image gt Image gt Stream 为此 我使用块 Buff
  • #pragma pack(16) 和 #pragma pack(8) 的效果总是相同吗?

    我正在尝试使用来对齐数据成员 pragma pack n http msdn microsoft com en us library 2e70t5y1 28v vs 100 29 aspx 以下面为例 include
  • C++ [Windows] 可执行文件所在文件夹的路径[重复]

    这个问题在这里已经有答案了 我需要访问一些文件fstream在我的 Windows 上的 C 应用程序中 这些文件都位于我的exe文件所在文件夹的子文件夹中 获取当前可执行文件的文件夹路径的最简单且更重要的 最安全的方法是什么 Use 获取
  • 使用 Chrome 和 Selenium 设置 LocalStorage

    我正在尝试使用 OpenQA Selenium 和 Chrome 设置本地存储键和值 我认为这相当微不足道 但我似乎无法让它发挥作用 我对 C 很陌生 所以我可能错过了一些东西 无论如何 我有这个功能 public static void
  • c# 模拟 IFormFile CopyToAsync() 方法

    我正在对一个异步函数进行单元测试 该函数将 IFormFile 列表转换为我自己的任意数据库文件类列表 将文件数据转换为字节数组的方法是 internal async Task

随机推荐

  • .NET Framework 上的 System.Numerics.Vector 初始化性能

    System Numerics Vector 为 NET Core 和 NET Framework 带来了 SIMD 支持 它适用于 NET Framework 4 6 和 NET Core Baseline public void Sim
  • Google Apps 脚本是否支持外部 IDE?

    我正在使用 Google Apps 脚本 想知道是否可以使用 Google 提供的编辑器之外的任何类型的编辑器 我购买了 Sublime Text 并且想使用它 Google 提供的那个很恶心 文本很小 尽管我有一个巨大的屏幕和语法颜色 我
  • Android 单选按钮

    我在 Android 中有一个单选按钮组 看起来像 选择颜色 Red Blue Orange Green 我需要选择单选按钮及其值 我在 radiogroup 中以这种方式有 4 个单选按钮rg rb1a RadioButton findV
  • Chrome CLI 的参数 --virtual-time-budget 的真正含义是什么?

    我知道该论点的文档 virtual time budget 在源中 https cs chromium org chromium src headless app headless shell switches ccChromium 但我觉
  • Zend Framework 3 中的 GetServiceLocator

    早上好 我一直在学习使用框架 Zend Framework 进行编程 根据我过去的经验 我使用的是骨架应用程序 v 2 5 也就是说 我过去开发的所有模块都围绕 ServiceManager 的 servicelocator 工作 有没有办
  • 如何在Android中的WebView中永久突出显示文本?

    我正在为 Android 手机开发 ePUB 阅读器 我可以使用 WebView 和 ClipBoardManager 将文本复制到 ClipBoard 但我真正想做的是永久突出显示该选择 我看到一些文章 他们建议让 WebView 处于选
  • Windows 客户端(而非 Web 应用程序)打印的最佳方式?

    从 c net 打印内容的最佳方法是什么 问题涉及单页以及包含大量页面的报告 如果能获得最常见的打印库的列表 其中包含每个库的主要功能和陷阱 那就太好了 更新 适用于标准 Windows 客户端 或服务器 不适用于网络应用程序 对于报告 我
  • 从数组和频率创建哈希

    我有一个数组 1 2 4 5 4 7 我想找到每个数字的频率并将其存储在哈希中 我有这段代码 但它返回NoMethodError undefined method for nil NilClass def score array hash
  • Python默认参数评估[重复]

    这个问题在这里已经有答案了 我正在阅读 Python 文档版本 2 7 10 中的 python 教程 我遇到了类似的内容 Code def fun1 a L L append a return L print fun1 1 print f
  • java.lang.IllegalArgumentException:未找到命名查询:

    我得到以下代码 Stateless public class BondecomandeDAO PersistenceContext private EntityManager em public Bondecommande findBCby
  • 检测 iframe 对象中的 src/位置更改

    我有一个 iframe 对象指向特定页面 例如 我希望每当 iframe 的位置发生变化时都会收到警报 因为用户单击了其中的链接 Doing onLoad alert this ContentWindow location href 什么也
  • 在 C++ 中是否有模仿 Java try/finally 的常用习惯用法?

    从事 Java 工作很多年了 所以一直没有关注 C 有finally子句是否已添加到语言定义中的 C 异常处理中 有没有一种流行的模仿 Java 的 try finally 的习惯用法 我还担心 C 没有一个终极超类型来处理所有可能抛出的异
  • .NET Micro Framework 不安全代码

    NET Micro Framework 是否支持不安全代码 换句话说 我可以在 NET Micro Framework 的代码中使用指针吗 来自维基百科页面 http en wikipedia org wiki NET Micro Fram
  • 使用 ARC 手动保留

    在 ARC 之前 我有以下代码 可以在异步操作正在进行时保留委托 void startAsyncWork delegate retain calls executeAsyncWork asynchronously void executeA
  • 如何获得带有括号和所有内容的 SQL Server 列定义?

    我需要一种智能方法 以可在 CREATE TABLE 语句中使用的方式从 INFORMATION SCHEMA COLUMNS 中获取数据类型 问题是需要理解的 额外 字段 例如 NUMERIC 精度和数字 SCALE 显然 我可以忽略 I
  • 在 HIVE 中选择该月的第一天

    我正在使用 Hive 它与 SQL 类似 但对于 SQL 用户来说语法可能略有不同 我看过其他的stackoverflow 但它们似乎在SQL中具有不同的语法 我试图通过此查询获取该月的第一天 这给了我今天的一天 例如 如果今天是 2015
  • Android:尝试序列化...忘记注册类型适配器?”

    如何使用 HashMap 转换为 JSONGson https code google com p google gson class ClassData public String jsonString public Class clas
  • 将输出分配给 Bash 中的变量[重复]

    这个问题在这里已经有答案了 我试图将 cURL 的输出分配给一个变量 如下所示 bin sh IP curl automation whatismyip com n09230945 asp echo IP sed s IP IP nsupd
  • MSSQL - JPA - 特殊字符的字符编码 - 附加“N”nativeQuery

    我使用 Spring 4 3 1 和 JPA 2 0 并连接到 MSSQL 我正在使用 JpaRepository 的 save 方法来插入和更新数据 其中一个字段具有 nvarchar 它可以包含特殊字符 如拉丁文 中文 另外 我在 ap
  • 如何使用反射来调用私有方法?

    我的类中有一组私有方法 我需要根据输入值动态调用一个方法 调用代码和目标方法都在同一个实例中 代码如下所示 MethodInfo dynMethod this GetType GetMethod Draw itemType dynMetho