【问题标题】:How can I get the list of the types loaded by the CLR?如何获取 CLR 加载的类型列表?
【发布时间】:2019-03-23 07:22:51
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: .net debugging reflection clr


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-10-31
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      相关资源
      最近更新 更多