查找类实例属性的属性

时间:2010-06-08 15:59:25

标签: c# reflection

给定一个类的实例我想在运行时设置属性的属性。

所以我尝试了这个,但据我所知,这发现类上的属性不是实例,因此我对属性属性所做的任何更改都没有效果。

var properties = myObject.GetType().GetProperties();

foreach (object prop in properties)
{
   var attribute =prop.GetCustomAttributes(typeof(MyAttribute), true)[0];
   //attribute.MyProp do some stuff
}

如果我尝试使用如下所示的类型描述符,则无法获取属性上的属性。

var myObject= (MyClass) object;
PropertyDescriptorCollection props = TypeDescriptor.GetProperties(myObject);

//There is no props[0].GetCustomAttributes(

1 个答案:

答案 0 :(得分:2)

属性是您应用于Type的元数据,或类型的成员,而不是实例。如果要将值应用于类的特定实例,是否应该考虑使用属性/字段?