我想知道如何构建一个Resharper(6.1)代码模式来搜索和替换以下问题:
var cmd = new SqlCommand();
cmd.ExecuteNonQuery();
并将其转换为:
using (var cmd = new SqlCommand())
{
cmd.ExecuteNotQuery();
}
并
StreamReader reader = new StreamReader("myfile.txt");
string line = reader.Read();
Console.WriteLine(line);
变为:
using (StreamReader reader = new StreamReader("file.txt"))
{
string line = reader.ReadLine();
Console.WriteLine(line);
}
编辑: 感谢您的回答,但我正在寻找实施IDisposable
答案 0 :(得分:2)
搜索模式:
var $cmd$ = $sqlcommand$;
$cmd$.ExecuteNonQuery();
替换模式:
using (var $cmd$ = $sqlcommand$)
{
$cmd$.ExecuteNonQuery();
}
其中cmd
=标识符
和sqlcommand
= System.Data.SqlClient.SqlCommand
答案 1 :(得分:2)
看起来你真正追求的是一种检查机制,它会寻找IDisposable
个对象,并确保它们被处置掉。如果是这种情况,我怀疑自定义模式是正确的方法 - 毕竟,如果你做后几行调用Dispose()
该怎么办?
实现此目的的一种方法是使用ReSharper SDK。实际上,SDK附带的一个示例是PowerToy,它在特定的类上实现IDisposable
,因此您可以将该代码作为可能的使用分析的基础。
答案 2 :(得分:0)
使用ReSharper |下的Search with Pattern工具查找菜单。
在搜索模式中,确保选择了C#并在框中输入您要搜索的代码。单击右上角的“替换”按钮,然后在“替换模式”框中输入要替换它的代码。
您可以保存搜索和替换模式,R#将根据您的需要将其用于后续代码分析。您还可以在Code Inspection |下的R#Options中添加其他模式自定义模式。