如何获取C#中所有已加载类型的列表?

rui*_*rui 10 .net c# reflection

我需要检索从给定的程序集集加载的所有枚举.

Oli*_*ich 15

List<Type> list = new List<Type>();
foreach (Assembly ass in AppDomain.CurrentDomain.GetAssemblies())
{
    foreach (Type t in ass.GetExportedTypes())
    {
        if (t.IsEnum)
        {
            list.Add(t);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

对于当前Appdomain加载的所有程序集,应该只从已定义的程序集中获取,只需调整;-)


Bra*_*rad 8

这是一个更实用的解决方案:

AppDomain.CurrentDomain.GetAssemblies()
    .SelectMany(a => a.GetTypes())
    .Where(t => t.IsEnum)
Run Code Online (Sandbox Code Playgroud)