使用类属性获取类名

时间:2015-04-07 12:20:36

标签: c#

我创建了课程

public class MarkerAttribute : Attribute
{

}

并在MyTestClass中设置此属性

[Marker]
public class MyTestsClass
{

}

如何在项目中收到具有此属性的所有类的名称?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用反射来获取具有该属性的类型:

using System;
using System.Reflection;

public class MarkerAttribute : Attribute {
}

[Marker]
class Program {
    static void Main(string[] args) {
        foreach (Type type in Assembly.GetExecutingAssembly().GetTypes()) {
            foreach (Attribute attribute in type.GetCustomAttributes()) {
                MarkerAttribute markerAttribute = attribute as MarkerAttribute;
                if (markerAttribute != null) {
                    Console.WriteLine(type.FullName);
                }
            }
        }
    }
}