为Visual Studio编写自定义重构

时间:2009-12-22 13:27:04

标签: c# visual-studio-2008

有没有办法为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 个答案:

答案 0 :(得分:2)

正如马克所说,这更像是一种“替代”而不是重构。但无论如何,ReSharper是一个选项,如果您决定使用它,您可以查看this guide。祝你好运!

以上链接现在似乎已损坏,请尝试使用此one

答案 1 :(得分:1)

严格来说,这不是重构,因为它会以显着改变行为的方式更改代码(特别是调用Dispose())。我希望希望“Resharper”或“Refactor!Pro”会批量“引入使用”(或类似)。我已经检查了“Refactor!Pro”(因为这是我使用的),虽然它检测到未曝光的本地(至少,它与DbConnection conn = new SqlConnection();一起),但它并没有提供自动修复(当然,手动操作很简单)。我建议:

  • 检查Resharper(有评估期)
  • 如果没有,请手动执行

答案 2 :(得分:0)

您需要编写一个宏来执行此操作。