清理不需要的代码C#

我使用Visual Studio 2005获得了一个C#应用程序。该代码有大约300个KLOC,已经被滥用了3年。

当我通过代码时发现了很多未使用的函数/方法/属性。 无法手动清理代码(需要检查每个成员,如果找不到引用则删除它。)

我希望通过VS宏自动执行这个过程,它将遍历代码中的每个成员,如果它没有任何引用它应该删除它,如果找到任何引用,检查其调用成员的引用,如果调用成员,没有它应该删除任何引用等等。

我相信有些人会早点破解它。

Resharper具有清洁代码function,可以很好地指示哪些方法/类没有被使用。

您可以使用CQL使用NDepend查询代码库,以找出未使用的方法和类。

注意通过reflection调用的代码。 许多重构工具会将此代码标记为实际上不被访问。

最安全的是在重构之前和之后运行你的unit testing(你有没有这些?)以确保一切仍然有效。

第一次使用重新锐化,正如其他人所建议的那样。

Resharper假设公共方法在外部程序集的某处使用,即使它们不是,因此搜索并将“public”替换为“private”并重新编译。

我使用Gendarme (像FxCop)来确定哪些代码没有被调用。 AFAIK它不能自动化,但至少你不需要逐行去。