如何轻松找到未使用的公共方法/属性

Posted

技术标签:

【中文标题】如何轻松找到未使用的公共方法/属性【英文标题】:How to easyily find unused public methods/properties 【发布时间】:2010-12-01 02:34:28 【问题描述】:

我有一个 .Net(C#) 解决方案。该解决方案包含一堆项目。这些项目不是由我实施的。它不是一个框架,这意味着我需要尽可能少地使用公共方法/属性。我的任务是识别未使用但存在于项目中的方法和属性。好吧,我可以找到不使用 R# 的私有方法。但完全不清楚如何找到未使用的 public 方法/属性。

听说他们有 NDepend 工具,但不是很简单的工具,是吧。

所以,问题是:您能否指出一个可用于识别解决方案中未使用的方法的工具。我可以有命令行工具或一些非常简单的东西。

UPD:我尝试使用试用版 NDepend。

嗯,首先似乎可以看到在这个特定程序集中没有使用的公共方法(属性表示为 get_set_ 方法)。

但 NDepend 无法识别公共方法是否来自另一个项目/程序集,这是解决方案的一部分,并将该方法显示为未使用。但事实并非如此。

UPD2:建议 mcintyre321 使用 R#。请阅读下面的第一条评论。

【问题讨论】:

只要确保您决定删除的内容没有被反射调用! 感谢您的来信。我确信我的解决方案中没有使用反射。但是网络服务是:-\ 我已经删除了图片链接,因为它看起来已经死了,并且指向了一个非 https url 【参考方案1】:

如果您在 ReSharper(5.0 及更高版本)中打开解决方案范围分析,它将为您标记它们。这包括公共方法。

Explanation of Solution-Wide analysis

How to enable

【讨论】:

感谢您的评论。不幸的是,它没有帮助。最后 R# 只是显示一些 css 和 asxc 路径没有找到/有效。但它没有说明公共方法/属性。 谢谢你的照片。 “解决方案中的错误”列表没有错误,这正是我所拥有的。现在我明白你的意思并认为它可以提供帮助。是否可以使用 R# 在一个“窗口”中获取解决方案中所有未使用方法的列表,例如在错误列表中? 您可以在 R# 选项中配置检查严重性,以便它们显示为警告或错误。 感谢您的宝贵时间。不幸的是,R# 没有将公共未使用的方法显示为(至少对我而言)错误,而是显示私有方法。我有 R# 4.5。它会为您显示它们吗? Resharper 菜单 => 选项 => 代码检查 => 检查严重性 => 未使用的声明 => 非私有可访问性 = 显示为错误【参考方案2】:

哎呀,我已经做到了老派。我只是注释掉我认为没有被使用和构建的方法。如果我得到一个错误,然后我把它留在那里。

【讨论】:

但是如果你有很多课程,这不是解决问题的好方法。在这种情况下,工作量很大。我们是这里的程序员,需要考虑如何自动化这个过程。谢谢。 此外,如果直接引用该方法,您只会得到错误,但情况并非总是如此,例如对于 IoC 容器中的事件订阅者

以上是关于如何轻松找到未使用的公共方法/属性的主要内容,如果未能解决你的问题,请参考以下文章

对类的公共方法禁用“未使用”警告

如何在 Mockery 中为受保护的属性存根公共设置方法

如何实现具有公共属性但私有设置方法的多个接口?

如何在没有继承方法的情况下获取类的公共方法?

Effective Java 第三版——16.在公共类中使用访问方法而不是公共属性

我应该测试私有方法还是仅测试公共方法? [关闭]