识别未使用的类/控件/页面

时间:2011-11-29 12:23:34

标签: c# asp.net refactoring

我们有一个已有10年历史的ASP.NET网站项目,包含大量未使用/旧版用户控件和页面。

是否有工具可以帮助识别解决方案的这些元素,因此我们可以将它们重构出来?

我知道问题很复杂,因为并非所有类型都被引用为编译器/工具可能识别的类型。例如通过反射实例化的对象使用表示类名的字符串进行实例化。另外,asp.net页面通常不作为类型引用,而是作为标记中的页面标识符字符串引用。

似乎有人会创建一个处理这些案例的工具并创建一个未使用的类/页面/用户控件的候选列表

2 个答案:

答案 0 :(得分:2)

ReSharper是一个重构工具,可以帮助您识别未使用的类和方法的云。它也可以安全地删除它们。它允许您删除方法或类并调整它的所有用法。请参阅:Safe delete

它也有适当的ASP.NET支持。请参阅:ASP.NET support

答案 1 :(得分:2)

您可以使用此正则表达式查找未使用的已注册控件

<%@\s*Register\s+TagPrefix\s*=\s*"(?<tagprefix>[^"]+)"\s+TagName\s*=\s*"(?<tagname>[^"]+)"\s+Src\s*=\s*"[^"]+"\s*%>(?!.*?\k<tagprefix>:\k<tagname>\s+)

我使用powergrep运行此正则表达式。 应启用“Dot match newline”复选框以使其正常工作。