当前位置: 首页 > article >正文

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

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

基本步骤

// 1. 获取类型
Type targetType = typeof(GraphicsFormatUtility);

// 2. 获取私有静态方法,需要指定BindingFlags
MethodInfo methodInfo = targetType.GetMethod(
    "GetFormat",                                    // 方法名
    BindingFlags.Static |                          // 静态方法
    BindingFlags.NonPublic                         // 私有方法
);

// 3. 调用方法
// null: 因为是静态方法,不需要实例
// new object[] { param1, param2 }: 方法参数数组
object result = methodInfo.Invoke(null, new object[] { param1 });

// 4. 转换结果到正确的类型
GraphicsFormat format = (GraphicsFormat)result;

BindingFlags 主要选项

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

常见组合

获取私有静态方法

BindingFlags.NonPublic | BindingFlags.Static

获取私有实例方法

BindingFlags.NonPublic | BindingFlags.Instance

获取所有静态方法(公开+私有)

BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static

获取当前类的所有成员

BindingFlags.Public | 
BindingFlags.NonPublic | 
BindingFlags.Static | 
BindingFlags.Instance | 
BindingFlags.DeclaredOnly

http://www.kler.cn/a/509090.html

相关文章:

  • Nginx三种不同类型的虚拟主机(基于域名、IP 和端口)
  • arcgis提取不规则栅格数据的矢量边界
  • [Collection与数据结构] PriorityQueue与堆
  • 3 前端(上): Web开发相关概念 、HTML语法、CSS语法
  • MDX语言的数据库交互
  • Redis哨兵(Sentinel)
  • 移动端布局 ---- 学习分享
  • AWTK fscript 中的 输入/出流 扩展函数
  • 探秘Node.js模块Modules:从入门到精通
  • 【湖南省乡镇界】面图层shp格式arcgis数据乡镇名称和编码2020年wgs84坐标内容测评
  • 晨辉面试抽签和评分管理系统之十三:如何让不同批次、同一组别的面试考生抽到连续的号码?
  • “云网安”一体化能力指南(2024)
  • C++ Qt, 使用QTableView,分页功能
  • 使用ffmpeg提高mp4压缩比,减小文件体积【windows+ffmpeg+batch脚本】
  • openssl在windows下的编译
  • 打破编程“鄙视链”:探索行业发展新路径
  • vim函数定义跳转相关设置
  • 如何在亚马逊云科技上消除无服务器网页应用冷启动时间(下篇)
  • Selenium自动化测试实战
  • 红队可视化工具:网络安全的“透视眼”
  • 3. 后端验证前端Token
  • 【BUUCTF】[GXYCTF2019]BabySQli
  • ansible自动化运维实战--服务端安装、环境配置与测试(1)
  • C语言编程笔记:文件处理的艺术
  • [Qt] Box Model | 控件样式 | 实现log_in界面
  • JavaScript 中的 `find` 方法