Автоматический рефакторинг: добавление аргумента ко всем вызовам методов

Итак, в моей базе кода 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, у которых есть строка в первом аргументе, но это не нашло совпадений в моем кодовая база.

Есть идеи, как я могу решить эту проблему, не прибегая к ручному изменению всех ссылок?


person Ciaran Gallagher    schedule 09.05.2014    source источник


Ответы (1)


Согласно документации Jetbrains Resharper "Поиск кода с шаблоном":

Обратите внимание, что когда вы используете заполнитель, его имя должно быть заключено в знаки доллара (используйте синтаксис $ xx $, где xx представляет имя заполнителя), тогда как при создании нового заполнителя эти специальные символы следует опускать.

Поэтому я был на правильном пути. Также для заполнителя мне просто нужно '$ anyString $', и он найдет все вызовы метода, даже если они состоят из нескольких строковых объектов (например, строковых литералов и строковых объектов). Вот как это будет выглядеть:

SearchWithPatternSolution

Шаблон заполнителя anyString был создан путем выполнения следующих шагов:

1) Нажмите «Добавить заполнитель» -> «Аргумент».

2) Дайте ему имя, например 'anyString'

В моем случае я также проверил «Ограничить минимальное количество аргументов» и выбрал 1, и я также поставил флажок «Максимальное» и также установил его на 1.

Кнопка «Сохранить» также полезна, если вы собираетесь повторно использовать узор снова.

person Ciaran Gallagher    schedule 09.05.2014