gpt4 book ai didi

c# - 使用自定义属性获取程序集中的所有类型

转载 作者:IT王子 更新时间:2023-10-29 04:18:41 26 4
gpt4 key购买 nike

是否有一种优雅的方法来获取程序集中具有自定义属性的所有类型?

如果我要上课

[Findable]
public class MyFindableClass
{}

我希望能够在 Assembly.GetTypes(...) 返回的类型集合中找到它

我可以用一个大的卑鄙的黑客来做到这一点,但我相信有人有更好的方法。

最佳答案

我认为您无法避免枚举程序集中的每个类型,检查属性,但您可以使用 LINQ 使查询更易于理解:

Assembly assembly = ...
var types = from type in assembly.GetTypes()
where Attribute.IsDefined(type, typeof(FindableAttribute))
select type;

编辑:根据 Marc Gravell 的建议,从 MemberInfo.GetCustomAttributes 移动到 Attribute.IsDefined

关于c# - 使用自定义属性获取程序集中的所有类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4852879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com