我使用AppDomain.CurrentDomain.GetAssemblies()
列出了所有程序集,但是如何使用C#列出.NET 2.0中的所有内置属性?
答案 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);
}
}
}