开发者

get all types in assembly with custom attribute

开发者 https://www.devze.com 2023-02-07 13:07 出处:网络
Is there an elegant way to get all the types in an assembly that have a custom attribute? So if I have a class

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 MyFindableCla开发者_运维知识库ss
{}

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消