如何查看.Net中加载了哪些类

时间:2012-09-22 18:52:32

标签: .net assemblies appdomain

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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