首页 新闻 会员 周边 捐助

C# 反射 获取字段、属性的时候,如何排除重复的?

0
悬赏园豆:10 [已解决问题] 解决于 2013-12-04 15:35

RT,在c#中,我们设计一个类的时候,属性大都是设置或者返回字段值,此时就造成了重复,当然如果字段申明为非公开类型,采用BindingFlags枚举类是可以有效过滤,但如果你调用的是别人写的类,你如何能确保别人写的字段复合你的要求?如下:

    public class Demo
    {
        public int Field;
        public int Prop
        {
            get
            {
                return Field;
            }
            set
            {
                Field = value;
            }
        }
    }

我们在反射的时候如此做

            Demo f = new Demo();
            Type t = f.GetType();
            PropertyInfo[] pp = t.GetProperties();
            FieldInfo[] ff = t.GetFields();

此时打断点会发现pp的长度为1,ff的长度为1。

能不能做到发现类的一个属性实际是调用的一个其中一个字段的时候,去除重复。

Echofool的主页 Echofool | 初学一级 | 园豆:175
提问于:2013-04-23 14:04
< >
分享
最佳答案
0

想多了,总是想得太多。

Echofool | 初学一级 |园豆:175 | 2013-12-04 15:35
其他回答(2)
0

没明白什么意思。

顾晓北 | 园豆:10898 (专家六级) | 2013-04-23 14:30

就是反射的时候,如果有属性实际设置和返回的值时另一个字段的值,那么在反射字段的时候,将其排除。

支持(0) 反对(0) Echofool | 园豆:175 (初学一级) | 2013-04-23 14:32
0

如果field是public,那property用来做什么 ?

收获园豆:4
I,Robot | 园豆:9783 (大侠五级) | 2013-04-23 21:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册