所有内置的.Net属性

时间:2010-10-08 06:41:26

标签: c# linq

我使用AppDomain.CurrentDomain.GetAssemblies()列出了所有程序集,但是如何使用C#列出.NET 2.0中的所有内置属性?

1 个答案:

答案 0 :(得分:15)

请注意,AppDomain.GetAssemblies()只会列出已加载的程序集......但这很容易:

var attributes = from assembly in assemblies
                 from type in assembly.GetTypes()
                 where typeof(Attribute).IsAssignableFrom(type)
                 select type;

.NET 2.0(非LINQ)版本:

List<Type> attributes = new List<Type>();
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
{
    foreach (Type type in assembly.GetTypes())
    {
        if (typeof(Attribute).IsAssignableFrom(type))
        {
            attributes.Add(type);
        }
    }                   
}