用反射得到的PropertyInfo和直接TypeDescriptor.GetProperties(this, true)得到的由什么不同吗?

.Net技术 码拜 10年前 (2015-05-11) 1194次浏览 0个评论
 

想得到一个类对象所有的property的信息,用这两种方法都可以吧? 得到的东西可能会有什么不同么?

可能我问的问题本身有误区,希望我想表达的意思可以让大家明白了。

谢谢!

求答案!…….
25分
TypeDescriptor.GetProperties得到的是属性的数组(可能多个)
反射得到的PropertyInfo,不知道你说的反射是什么,但是你说是PropertyInfo,那显然只是一个属性
25分
也许功能类型,但明显得到的类型都不同。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace IconTest
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            ReflectTest rt = new ReflectTest();
            //rt.GetType().GetProperty("ID").SetValue(rt, "Guid", null);
            TypeDescriptor.GetProperties(rt)["ID"].SetValue(rt, "Guid");           
            MessageBox.Show(rt.ID);
        }

    }
    public class ReflectTest
    {
        private string id;
        [ReadOnly(true)]
        public string ID
        {
            get
            {
                return id;
            }
            set
            {
                id = value;
            }
        }
    }
}

 对于只读属性TypeDescriptor.GetProperties(rt)[“ID”].SetValue(rt, “Guid”); setvalue失效


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明用反射得到的PropertyInfo和直接TypeDescriptor.GetProperties(this, true)得到的由什么不同吗?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!