views:

73

answers:

2

I have an attribute declared on property. How can I get the property name inside the attribute?

+5  A: 

Sorry to say it but you can't. The attribute has no meaning of knowing to what property/class it is applied.

In general attributes alone are useless (they are just metadata decorating your classes), there must be something reading them at runtime and in order to read an attribute you already have a reference to the property this attribute is applied to, so you already know the property name.

Darin Dimitrov
+1  A: 

This is backwards. The only possible way you can get the attribute value is through PropertyInfo.GetCustomAttributes(). That requires knowing the property name first so you can get the PropertyInfo object from Type.GetProperty().

Hans Passant