C# 反射获取私有静态方法详解

打印 上一主题 下一主题

主题 875|帖子 875|积分 2635

C# 反射获取私有静态方法详解

根本步调

  1. // 1. 获取类型
  2. Type targetType = typeof(GraphicsFormatUtility);
  3. // 2. 获取私有静态方法,需要指定BindingFlags
  4. MethodInfo methodInfo = targetType.GetMethod(
  5.     "GetFormat",                                    // 方法名
  6.     BindingFlags.Static |                          // 静态方法
  7.     BindingFlags.NonPublic                         // 私有方法
  8. );
  9. // 3. 调用方法
  10. // null: 因为是静态方法,不需要实例
  11. // new object[] { param1, param2 }: 方法参数数组
  12. object result = methodInfo.Invoke(null, new object[] { param1 });
  13. // 4. 转换结果到正确的类型
  14. GraphicsFormat format = (GraphicsFormat)result;
复制代码
BindingFlags 主要选项

标志阐明BindingFlags.Public公开成员BindingFlags.NonPublic私有成员BindingFlags.Static静态成员BindingFlags.Instance实例成员BindingFlags.DeclaredOnly仅当前类声明的成员(不包罗继承) 常见组合

获取私有静态方法

  1. BindingFlags.NonPublic | BindingFlags.Static
复制代码
获取私有实例方法

  1. BindingFlags.NonPublic | BindingFlags.Instance
复制代码
获取所有静态方法(公开+私有)

  1. BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static
复制代码
获取当前类的所有成员

  1. BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static
  2. | BindingFlags.Instance | BindingFlags.DeclaredOnly
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表