开发者

get all types in assembly with custom attribute

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

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜