给定一个类的实例我想在运行时设置属性的属性。
所以我尝试了这个,但据我所知,这发现类上的属性不是实例,因此我对属性属性所做的任何更改都没有效果。
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(
答案 0 :(得分:2)
属性是您应用于Type的元数据,或类型的成员,而不是实例。如果要将值应用于类的特定实例,是否应该考虑使用属性/字段?