如何获取 CLR 加载的类型列表?



获取程序集中定义的类型列表很简单:assembly.GetTypes().

我感兴趣的是运行时当前加载的类型列表。更具体地说,我想获取加载的封闭泛型类型的列表。

我想 CLR 保留了加载类型的列表。我认为我可以使用CLR MD来获取此列表,但我想在当前进程中获取并使用该列表。使用 CLR MD,我必须启动一个外部进程,捕获加载的类型列表,将其转储到文件中,然后从活动进程中读取它。

是否有为当前进程提供已加载类型列表的调试或诊断 API?

根据是否需要所有 AppDomain 中的所有类型,您可能能够在当前 AppDomain 中查询所有已加载的程序集,并查询这些程序集:

from a in AppDomain.CurrentDomain.GetAssemblies()
from t in a.GetTypes()
where t.IsGenericType
select t.FullName

相关内容

最新更新