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

时间:2018-10-18 13:07:13

标签: .net debugging reflection clr

直接获得程序集中定义的类型的列表:assembly.GetTypes()

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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