0

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

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

4

2 回答 2

0

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

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

于 2012-09-25T14:48:54.953 回答
0

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

于 2012-09-22T18:57:18.770 回答