Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在c#上使用字段的反射get值

在c#上使用字段的反射get值
EN

Stack Overflow用户
提问于 2020-04-27 14:42:26
回答 2查看 123关注 0票数 1

我想要获取subfield('m_fullDescriptor')的值,但是它抛出了一个错误,如下所示。如何获取子字段的值?

结构;

enter image description here

代码;

代码语言:javascript
运行
AI代码解释
复制
 public class FieldsClass
        {
            public string fieldA;

            public FieldsClass()
            {
                fieldA = "A public field";
            }
        }


FieldsClass fieldsInst = new FieldsClass();

var specFields = con.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Single(pi => pi.Name == "pmCS").FieldType.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Single(pi => pi.Name == "m_pm").FieldType.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Single(pi => pi.Name == "m_fullDescriptor");

fieldsInst.fieldA= (string)specFields.GetValue(con);

我得到了下面的错误;

代码语言:javascript
运行
AI代码解释
复制
System.ArgumentException: 'Field 'm_fullDescriptor' defined on type 'OracleInternal.ConnectionPool.PoolManager`3[OracleInternal.ConnectionPool.OraclePoolManager,OracleInternal.ConnectionPool.OraclePool,OracleInternal.ServiceObjects.OracleConnectionImpl]' is not a field on the target object which is of type 'Oracle.ManagedDataAccess.Client.OracleConnection'.'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-27 19:30:51

不要使用Linq中的Single来查找您需要的字段。使用GetField方法,它已经接受了字段的确切名称。标志也可以重复使用。

要获取值,需要在定义该字段的位置传递一个对象。

我相信这应该是可行的,而不是测试。

代码语言:javascript
运行
AI代码解释
复制
var flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;

var pmCS = connection.GetType().GetField("pmCS", flags).GetValue(connection);
var m_pm = pmCS.GetType().GetField("m_pm", flags).GetValue(pmCS);
var m_fullDescriptor = m_pm.GetType().GetField("m_fullDescriptor", flags).GetValue(m_pm);
票数 1
EN

Stack Overflow用户

发布于 2020-04-27 18:55:04

您正在尝试获取存在于OracleInternal.ConnectionPool.OraclePoolManager类型上的m_fullDescriptor的值,但是您正在向GetValue传递一个不属于该类型的对象(con)。

这样的东西应该可以工作,但是,我无法测试它,因为我没有访问Oracle数据库的权限。

代码语言:javascript
运行
AI代码解释
复制
var pmCSField = connection.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Single(pi => pi.Name == "pmCS");

var m_pmField = pmCSField.FieldType.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Single(pi => pi.Name == "m_pm");

var m_fullDescriptorField = m_pmField.FieldType.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Single(pi => pi.Name == "m_fullDescriptor");

var pmCSFieldValue = pmCSField.GetValue(connection);

var m_pmFieldValue = m_pmField.GetValue(pmCSFieldValue);

var m_fullDescriptorFieldValue = m_fullDescriptorField.GetValue(m_pmFieldValue);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61461465

复制
相关文章
hbase启动找不到主类
: 错误: 找不到或无法加载主类 .Library.Java.JavaVirtualMachines.jdk1.8.0_291.jdk.Contents.Home.bin.java
yiduwangkai
2021/07/01
1.2K0
悲剧!IDEA 突然找不到类了?
我们本地使用 IDEA 运行 maven 项目的时候,有时候运气不好,就会遇到某些 maven 依赖无法正常找到、导入。这就会导致 IDEA 构建项目的时候爆出一堆醒目的红色 Error。
andyxh
2021/08/06
5K0
hive export报错找不到DistCpOptions类
从上述报错,浏览社区没得到任何有价值的信息。通过查看hive的源码,也没有有效的信息。因此,我们需要查看hive的详细日志。
mikealzhou
2019/03/14
2.4K0
运行jar包找不到主类
在正确编译好java程序之后,打包,然后在命令行输入java -jar ,却弹出找不到或无法加载主类。
似水的流年
2019/12/08
4.6K0
运行jar包找不到主类
在正确编译好java程序之后,打包,然后在命令行输入java -jar ,却弹出找不到或无法加载主类。 一检查,我的path环境变量都是对的呀?java命令,程序也可以执行啊?怎么java -jar就不行了呢? 解决办法就是,修改MANIFEST文件。 然后发现,白花花的一片咧,肯定是需要添些东西的。 我打包的是名为com.ilkhome的包,里面有三个class,其中main.class是需要运行的。 于是,我在MANIFEST.MF文件里面多添加了一行:Main-Class: com
似水的流年
2018/01/18
3.9K0
dotnet 字典类找不到 TryAdd 方法
我在给 dotnet 的 runtime 仓库提PR时,小伙伴告诉我可以使用 TryAdd 方法减少判断,但是我修改这个代码发现 100 个自动化测试都失败了,都告诉我没有找到这个方法
林德熙
2022/08/12
8740
【Java】idea找不到符号找不到类,但是却没有错误
友情提示:打包,先clean在package,如果为子包(被其他项目所引入包:先clean,再install)
全栈程序员站长
2022/09/13
4.1K0
【Java】idea找不到符号找不到类,但是却没有错误
springboot打包成jar包后找不到xml,找不到主类的解决方法
请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题:
Dream城堡
2018/09/10
2.4K0
java提示找不到或无法加载主类
背景 默许jdk的配置大家都没有问题,执行java,javac无报错,但今天在尝试在本地起来kafka的时候,提示java 找不到或无法加载主类,然后日志中提示 Files 找不到或无法加载主类;C:
千往
2018/01/24
1.9K0
java提示找不到或无法加载主类
错误: 找不到或无法加载主类(java)
很多刚学java的同学基本上都遇到过这个问题,刚才我刚了一下idea中入口雷类的包的地址,就出现这个了。原因很简单,在此特做记录,希望能帮助到点开这个文章,遇到错误的你。
手撕代码八百里
2020/07/28
5.1K0
Instant Run 导致动态加载找不到类问题
今天遇到一个诡异的问题,之前在4.4.4手机上正常运行的动态加载在6.0.1上居然报找不到类,记录一下定位过程。
用户2930595
2018/08/23
8650
Instant Run 导致动态加载找不到类问题
【已解决】Spring容器中找不到ServletWebServerFactory类出现的异常
【已解决】Spring容器中找不到ServletWebServerFactory类出现的异常
谙忆
2021/10/26
17.4K0
修复 IntelliJ IDEA 中 Cucumber 6.8.1运行找不到类的问题
我估计这是 Cucumber 插件和 Cucumber 旧版本的版本兼容 Bug,不知道官方什么时候做兼容性修复,我所用的版本是6.8.1。
顾宇
2021/03/27
1.7K0
java运行class文件找不到主类_beanutils工具类中copyProperties
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/03
1.1K0
java运行class文件找不到主类_beanutils工具类中copyProperties
C# dotnet 提示找不到 CompositionContainer 类的解决方法
在构建提示 Error CS0012 和 Error CS0246 说找不到 CompositionContainer 类,原因是没有引用 System.ComponentModel.Composition 库
林德熙
2020/07/06
6210
idea 错误:找不到或无法加载主类 解决
问题出现的很莫名其妙,, 在项目的PATH 中,将path修改为跟当前项目在一个路径下就可以了
MickyInvQ
2020/09/27
12.7K0
idea 错误:找不到或无法加载主类 解决
IDEA 出现错误:找不到或无法加载主类
解决方法: idea本身缓存问题 解决:清理缓存重启IDEA file-->invalidate Cache/restart 解决方法二: 在这里设置自己的java文件的目录位置
孙晨c
2019/09/10
6.7K1
IDEA 出现错误:找不到或无法加载主类
Java提示错误: 找不到或无法加载主类
检查java在Idea终端中是否可用,如不可用,编辑编译器输出路径:文件→项目结构→模块→路径→输出目录 或 设置→工具→终端→项目设置→环境变量
无刺鱼
2022/03/29
2.1K0
java找不到或无法加载主类_java找不到或无法加载主类如何解决?解决方法「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。 相信有很多人都遇到过java找不到或无法加载主类的这个问题,那么这究竟是什么原因造成的呢?有什么方法可以解决这个问题吗? 问题: java文件导入到一个包
全栈程序员站长
2022/11/17
2.8K0
java找不到或无法加载主类_java找不到或无法加载主类如何解决?解决方法「建议收藏」
Sping Boot集成MyBatis打包成jar时,找不到类的问题
在Spring Boot中,由于是嵌套Jar,导致Mybatis默认的VFS实现DefaultVFS无法扫描嵌套Jar中的类。
用户1499526
2019/07/15
1.5K0

相似问题

如何在kafka连接jdbc中重写key.serializer

11

找不到类,找不到类定义

22

卡夫卡制片人抛出"key.serializer“异常

111

找不到GoogleMaps类-找不到类‘laravel’

12

使用事务时,每个生产者的key.serializer不同

113
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文