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

8
我有一个.Net(C#)解决方案。该解决方案包含一堆项目。这些项目并不是由我实现的。它不是一个框架,这意味着我需要尽可能少地拥有公共方法/属性。我的任务是识别在这些项目中存在但未被使用的方法和属性。我可以使用R#找到未使用的私有方法。但完全不清楚如何找到未使用的公共方法/属性。
我听说他们有NDepend工具,但这不是非常简单的工具,对吗?
所以问题是:您能指出一个可以用来识别解决方案中未使用的方法的工具吗?对于我来说,使用命令行工具或相当简单的东西都可以。
更新:我试图使用试用版的NDepend。
首先,似乎可以看到在此特定程序集中未使用的公共方法(属性表示为get_ set_ 方法)。
但是NDepend无法识别是否从解决方案的另一个项目/程序集中使用了公共方法,并将该方法显示为未使用。但这是不正确的。
更新2:mcintyre321建议使用R#。请阅读下面的第一个评论。

2
只要确保你决定删除的内容不是通过反射调用的! - RichardOD
谢谢留言。我确定我的解决方案中没有使用反射。但是Web服务是使用的 :-\ - Antipod
我已经删除了图片链接,因为它似乎已经失效,并且指向了一个无效的 https url。 - Liam
2个回答

8

谢谢提供图片。 "解决方案中的错误"列表没有错误,这正是我想要的。现在我明白了你的意思,觉得它可以帮助我。使用R#,是否有可能在一个“窗口”中获取解决方案中所有未使用的方法列表,例如在错误列表中? - Antipod
您可以在 R# 选项中配置检查严重性,以便它们显示为警告或错误。 - mcintyre321
感谢您的时间。不幸的是,R# 对我来说没有显示公共未使用方法作为错误,但显示私有方法。我使用的是 R# 4.5 版本。您的情况是否也是如此? - Antipod
这只是我所做的,但对我来说并没有起作用。正如您在原始问题截图中所看到的(在您的建议之后我添加了它),未使用的方法被标记为错误(红色),因为我按照您的建议进行了操作。但是,“解决方案中的错误”窗口即使我已启用设置,也不会将未使用的公共方法显示为错误。您能否在您的端上执行相同的操作并附上截图? - Antipod
Resharper 5确实会显示解决方案中的错误。请查看我的回答中的链接以获取预发布版本。 - mcintyre321
显示剩余3条评论

0

天哪,我老派了。 我只是注释掉我认为没有被使用的方法并构建代码。如果出现错误,那么我就把它留在那里。


1
但是如果你有很多类,这并不是解决问题的好方法。在这种情况下,这是很多工作量。我们是程序员,需要思考如何自动化这个过程。谢谢。 - Antipod
只有在直接调用方法时才会出现错误,这并不总是发生,例如在IoC容器中的事件订阅者。 - armannvg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接