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 MyFindableClas
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.