Today I needed to read custom attributes from members of an enumeration type. As the found solution did not strike me as immediately obvious, I'm posting here for future reference:
Thing foo = Thing.Bar;
FieldInfo field = foo.GetType().GetField(foo.ToString());
object[] attrs = field.GetCustomAttributes(typeof(Description), false);
where Thing is an enumeration, defined something like:
public enum Thing {
[Description("Foo thing")]
Foo,
Bar,
[Description("Baz thing")]
Baz
}
No comments:
Post a Comment