社区
C#
帖子详情
使用type.GetProperty()获取不到私有属性,看图。
丶爱拼才会赢
2017-12-08 10:25:09
这里是获取私有属性的代码,其中propertyname = "PageCount" ,
。现象是:这里的field一直获取不到,报空。
对于访问修饰符为protected的属性,却能使用上面图片中的代码获取到。有没有大神知道是为什么。帮帮,搞了很长时间了。
不咋用这个,分不多。。。 抱歉
...全文
319
10
打赏
收藏
使用type.GetProperty()获取不到私有属性,看图。
这里是获取私有属性的代码,其中propertyname = "PageCount" ,。现象是:这里的field一直获取不到,报空。 对于访问修饰符为protected的属性,却能使用上面图片中的代码获取到。有没有大神知道是为什么。帮帮,搞了很长时间了。 不咋用这个,分不多。。。 抱歉
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liuganlg
2019-02-14
打赏
举报
回复
1
我也出现了这个问题,后来我自己又写了个类测试访问私有属性,发现就你的这种方法是可以访问的,然后我就琢磨了一下,发现我出现问题的这个类是一个代理类,里面没有那个private私有字段,或者说是继承自父类的,所以发现不了。建议你要么改为protected,要么使用原type.BaseType.GetFields。
圣殿骑士18
2017-12-08
打赏
举报
回复
为什么要加BindingFlags.Instance参数,可以参见: https://msdn.microsoft.com/zh-cn/library/cexkb29a 其中有讲: 必须指定Instance或Static连同Public或NonPublic或将返回没有成员。 You must specify Instance or Static along with Public or NonPublic or no members will be returned.
圣殿骑士18
2017-12-08
打赏
举报
回复
同样的: var propInfo = ty.GetProperty("LineCount", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
丶爱拼才会赢
2017-12-08
打赏
举报
回复
受保护类型的属性,如下图
现象是受保护类型的属性能获取到,私有属性却一直为空。
丶爱拼才会赢
2017-12-08
打赏
举报
回复
这里是获取私有属性的代码。
这里是私有属性的定义。
现在就是通过获取属性的代码,获取该私有属性一直获取不到。一直为空。
娃都会打酱油了
2017-12-08
打赏
举报
回复
你能贴出你相对完整的实例吗?
娃都会打酱油了
2017-12-08
打赏
举报
回复
属性,字段是两回事
丶爱拼才会赢
2017-12-08
打赏
举报
回复
应该不是字段和属性的原因吧。
这里的LineCount使用PropertyInfo field = type.GetProperty(propertyname, flag) 却能获取到。。
圣殿骑士18
2017-12-08
打赏
举报
回复
PageCount是字段,不是属性。 使用: type.GetField(propName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
丶爱拼才会赢
2017-12-08
打赏
举报
回复
可以看到, PageCount定义的是私有属性。
定义的另外一个protected属性的值却能获取到,百思不得其解。。
Andorid-15k+的面试题
整理过的50道面试题目 1.listView的优化方式 重用convertView viewHolder static class viewHolder 在列表里面有图片的情况下,监听滑动不加载图片 多个不同布局,可以创建不同的viewHolder和convertView进行重用 2.listView
Java Web(五) JSP详解(四大作用域九大内置对象等)
2019独角兽企业重金招聘Python工程师标准>>> ...
2020java面试题,找
不到
工作来找我(二)
阻塞线程。 put 操作-生产者 与带超时时间的 poll 类似不同在于 put 时候如果当前队列满了它会一直等待其他线程调用 notFull.signal 才会被唤醒。 take 操作-消费者 与带超时时间的 poll 类似不同在于 take 时候如果当前队列空了它会一直等待其他线程调用 notEmpty.signal()才会被唤醒。 size 操作-消费者 当前队列元素个数,如代码直接
使用
原子变量 count
获取
。 public int size() { return count.get();
spring MethodInvokingFactoryBean 的
使用
和了解,Spring 通过通过方法创建Bean的实例
spring MethodInvokingFactoryBean 的
使用
和了解作用 让某个实例的某个方法的返回值注入为Bean的实例 让某个类的静态方法的返回值注入为Bean的实例
使用
MethodInvokingFactoryBean
使用
IDEA Maven项目非常方便的下载源码查看其类的说明信息,在这里非常方便的可以查看到这个方法的一些
使用
的说明 小测试一下子,简单的就跟着这个
使用
的作用的两个
MyBatis源码解析(一) --- 配置文件解析
MyBatis给我们提供丰富的配置来满足我们的需求,本文会对MyBatis的配置文件解析过程进行分析, 其中包含但不限于 properties、 settings、
type
Aliase、
type
Handlers 等。 1、配置文件解析入口 在单独
使用
MyBatis 时,第一步要做的事情就是根据配置文件构建SqlSessionFactory对象。相关代码如下: String resource = ...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章