Ostatnio dość sporo musiałem pracować z atrybutami dodawanymi do własności klasy, stąd też ten o do kod:
public static T GetAttribute<T>(this MemberDescriptor value) where T : Attribute { return (T)value.Attributes.Cast<Attribute>().First(attr => attr is T); }
Zwraca on wam atrybut o danym typie. Sposób wykorzystania:
var props = TypeDescriptor.GetProperties(obj); foreach(PropertyDescriptor prop in props) { var attr = prop.GetAttribute<DescriptionAttribute>(); Console.WriteLine(attr.Description); }
Może komuś się przyda.
Można to jeszcze skrócić i zwiększyć czytelność eliminując rzutowanie:
return value.Attributes.OfType<T>().First();
Comments are closed.