Is there an elegant way to get all the types in an assembly that have a custom attribute?
So if I have a class
[Findable] public class MyFindableClass {}
I would like to be able to find it in a collection of types returned by Assembly.GetTypes(...)
I can do it with a big vile hack, but I'm sure someone has a nicer way.
I wouldn't think you can dodge enumerating every type in the assembly, checking for the attribute, but you could use LINQ to make the query easier to understand:
Assembly assembly = ... var types = from type in assembly.GetTypes() where Attribute.IsDefined(type, typeof(FindableAttribute)) select type;
EDIT: Moved from MemberInfo.GetCustomAttributes
to Attribute.IsDefined
based on Marc Gravell's suggestion.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With