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