我的项目中的任何地方都有一些枚举对象。它们具有相同的功能。如何使用过滤器查找所有枚举对象。我不确定过滤器,但我认为我们可以在属性上添加Enum对象和过滤器类型的属性。
例如,我在2个类中有2个枚举对象:
public class FirstClass
{
[HelloWord]
public enum FirstEnum
{
View = 1,
Edit = 2
}
}
public class SecondClass
{
[HelloWord]
public enum SecondEnum
{
Good,
Bad
}
}
所以,我想在项目中列出包含属性[HelloWorld]的所有枚举对象。我怎么能这样做?
答案 0 :(得分:2)
这是一个Linq表达式,它将循环遍历所有类型的枚举,并使您的自定义' HelloWorld'属于他们。
foreach(Type enumType in Assembly.GetExecutingAssembly().GetTypes()
.Where(x => x.IsSubclassOf(typeof(Enum)) &&
x.GetCustomAttribute<HelloWorldAttribute>() != null))
{
Console.WriteLine(enumType.Name);
}