开发者

Finding the attributes on the properties of an instance of a class

Given an instance of a class I want to set properties on attributes at runtime.

So I tried this, but as far as I can tell this finds the attributes on the class not the instance, so any changes I make to the attribute properties have no effect.

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

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

If I try using type descriptor like below, there is no way of getting to the attributes on the properties.

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

//There is no props[开发者_如何学JAVA0].GetCustomAttributes(


Attributes are metadata you apply to a Type, or a Member of a Type, not an instance. If you are applying values to a specific instance of a class, shouldn't you consider using properties/fields?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜