【问题标题】:How to see which classes have been loaded in .Net如何查看.Net中加载了哪些类
【发布时间】:2012-09-22 18:52:32
【问题描述】:

是否有一种简单的方法可以查看正在运行的 .Net 应用程序,到目前为止已加载的所有类?这将有助于删除不再在大型项目中使用的类。

我知道我可以在每个类中放置静态初始化器并让它们进行某种注册,但这很乏味且容易出错。如果有一种更简洁的方法可以通过 AppDomain 或 Assembly 类或其他方式来完成,那就太好了。谢谢!

【问题讨论】:

    标签: .net assemblies appdomain


    【解决方案1】:

    您可以很容易地找到当前应用程序域中加载了哪些程序集 - AppDomain.CurrentDomain.GetAssemblies()。当然,它只会为您提供有关执行此操作时在特定时间加载的程序集的信息。有更好的方法来查找和清理解决方案中的冗余代码。就个人而言,我喜欢 ReSharper。它具有称为“查找代码问题”的强大功能(可用于整个解决方案),它会为您提供未使用符号的列表,这正是您正在寻找的。​​p>

    【讨论】:

    • ReSharper 不足,因为可能存在引用类的端点(例如,网页或 RESTful API 调用),但该端点不再使用。因此该类在编译时被引用,但从未在实践中使用。
    【解决方案2】:

    您可以使用 PostSharp、Spring.Aop 等方面库来拦截对方法、属性等的所有调用,并将类型名称添加到集合中。另一种方法是使用分析器。不幸的是,这两种方法都需要您继续使用该应用程序(希望它是一个带有 UI 的桌面应用程序)。

    顺便问一下,您是否尝试过启用 CodeAnalysis 并查找性能警告?您将收到所有从未调用过的方法、属性、字段的警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 2020-11-14
      • 2013-08-08
      相关资源
      最近更新 更多