如何为“进行项目范围的扫描”;拆下多余的锁扣“;使用Resharper?

如何为“进行项目范围的扫描”;拆下多余的锁扣“;使用Resharper?,resharper,Resharper,我正在处理一个大型的旧代码库,其中有很多: try { ... } catch { throw; } Resharper很有帮助地标记了这些,并提供了“删除多余捕获”的选项,但我不喜欢一个接一个地检查,我想一次将它们全部清除。有没有一种方法可以通过将Resharper与“代码清理”集成在一起来实现这一点?如果您使用的是Resharper 5.0,则可以将以下模式(另存为xml文件)导入模式目录(Resharper>工具>模式目录>导入)然后立即运行搜索以查找所有实例,以便您可以

我正在处理一个大型的旧代码库,其中有很多:

try
{
    ...
}
catch
{
    throw;
}

Resharper很有帮助地标记了这些,并提供了“删除多余捕获”的选项,但我不喜欢一个接一个地检查,我想一次将它们全部清除。有没有一种方法可以通过将Resharper与“代码清理”集成在一起来实现这一点?

如果您使用的是Resharper 5.0,则可以将以下模式(另存为xml文件)导入模式目录(Resharper>工具>模式目录>导入)然后立即运行搜索以查找所有实例,以便您可以查看并选择对其执行替换

<CustomPatterns>
  <Pattern Severity="HINT">
    <Comment>useless catch</Comment>
    <ReplaceComment>remove useless catch</ReplaceComment>
    <ReplacePattern>$code$</ReplacePattern>
    <SearchPattern><![CDATA[try
{
    $code$
}
catch
{
    throw;
}]]></SearchPattern>
    <Params />
    <Placeholders>
      <StatementPlaceholder Name="code" Minimal="1" Maximal="-1" />
    </Placeholders>
  </Pattern>
</CustomPatterns>

无用的捕获物
除去无用的捕获物
$code$

该模式在我的测试代码中起作用。我不知道模式匹配引擎是如何处理空白的,因此您可能需要将制表符更改为空格或任何适合您的代码标准。

感谢HandCrafter!为了核实一下,我给JetBrains发了电子邮件,他们告诉我同样的事情:“没有办法在整个解决方案范围内应用某种快速修复(如“删除冗余捕获”),但您可以使用新的结构化搜索和替换功能来搜索和替换此类结构。”他们的博客上有一个小的介绍: