Написать собственные рефакторинги для Visual Studio - PullRequest
5 голосов
/ 22 декабря 2009

Есть ли способ написать собственные рефакторинги или преобразования кода для Visual Studio?

Пример: у меня есть кодовая база с миллиардом экземпляров:

DbConnection conn = null;
conn = new DbConnection();
conn.Open();
...a number of statements using conn...
conn.Close();
conn = null;

Я хотел бы преобразовать это в:

using (DbConnection conn = GetConnection()){
   ...statements...
}

Везде, где вышеупомянутый образец появляется.

Редактировать: Выше приведен только пример. Дело в том, что мне нужно выполнить ряд преобразований кода, которые слишком сложны для выполнения с текстовым поиском-заменой. Интересно, смогу ли я подключиться к тому же механизму, лежащему в основе встроенного рефакторинга, чтобы написать свои собственные преобразования кода.

Ответы [ 3 ]

2 голосов
/ 22 декабря 2009

Как сказал Марк, это скорее замена, чем рефакторинг. Но в любом случае ReSharper - это вариант, и если вы решите его использовать, вы можете проверить это руководство . Удачи!

Похоже, что вышеуказанная ссылка не работает, попробуйте этот один вместо

1 голос
/ 22 декабря 2009

Строго говоря, это не чистый рефактор, поскольку он изменяет код таким образом, что существенно меняет поведение (в частности, вызывает Dispose()). Я бы надеялся , что либо у "Resharper", либо "Refactor! Pro" будет масса "вводить использование" (или подобное). Я проверил «Refactor! Pro» (так как это то, что я использую), и, хотя он обнаруживает недиспозиционный локальный (по крайней мере, он делает с DbConnection conn = new SqlConnection();), он не предлагает Автоматическое исправление (тривиально сделать вручную, конечно). Я бы предложил:

  • проверка Resharper (есть период оценки)
  • если нет, сделайте это вручную
0 голосов
/ 22 декабря 2009

Для этого вам нужно написать макрос.

...