自动重构:为所有方法调用添加一个参数

时间:2014-05-09 10:02:53

标签: c# resharper automated-refactoring

所以,在我的ASP.NET C#代码库中,我可能有数百个这样的代码:

Response.Redirect("something.aspx?Error=" + ex.Message);

我想自动为所有这些方法调用添加一个参数来添加' true'作为此方法的第二个参数,如下所示:

Response.Redirect("sometihng.aspx?Error=" + ex.Message, true);

我有Visual Studio 2010和最新版本的Resharper供我使用。

我尝试使用'搜索模式' Resharper中的功能(VS菜单 - > ReSharper - >查找 - >使用模式搜索)看看这是否会自动重构我的代码库,但我不确定它是如何工作的。这就是我的尝试:

SearchWithPattern

在右侧,我创建了一个' Argument'占位符名为' anyString',希望这会找到并替换在第一个参数中有字符串的Response.Redirect的所有调用,但是在我的代码库中找不到匹配项。

关于如何在不诉诸手动更改所有引用的情况下解决此问题的任何想法?

1 个答案:

答案 0 :(得分:3)

根据Jetbrains Resharper文档' Searching a Code with Pattern':

  

注意,当你使用占位符时,它的名字应该是   用美元符号括起来(使用语法$ xx $,其中xx代表   占位符名称),而当您创建新的占位符时,您   应该省略这些特殊符号。

因此,我走在正确的轨道上。另外对于占位符我只需要' $ anyString $'并且它将找到该方法的所有调用,即使它们由多个字符串对象组成(例如字符串文字和字符串对象)。所以这就是它的样子:

SearchWithPatternSolution

' anyString'占位符模式是通过执行以下步骤创建的:

1)点击“添加占位符”' - >参数

2)给它起个名字,例如' anyString'

就我而言,我还检查了限制最少数量的参数'并选择1,我还检查了' Maximal'框并将其设置为1。

'保存'如果您打算再次重复使用该模式,该按钮也很有用。