我团队中的程序员有时会打开事务并忘记包含 scope.Complete() 语句(参见下面的代码块)。关于方法的任何想法
(1) 在我们的解决方案中搜索缺少的 scope.Complete() 语句,或者
(2) 是否让 Visual Studio 自动突出显示丢失的 scope.Complete() 语句或发出警告?
这是我们错过的那一行:
using(TransactionScope scope = new TransactionScope())
{
/* Perform transactional work here */
scope.Complete(); <-- we forget this line
/* Optionally, include a return statement */
}
我已经尝试
过为此目的使用 ReSharper 自定义模式,但没有成功。理想情况下,我会搜索以下内容:
using(TransactionScope scope = new TransactionScope())
{
$statements1$
[^(scope.Complete();)]
$statements2$
}
但是,ReSharper 只接受标识符的正则表达式,而不是语句,因此这似乎不起作用 ( http://www.jetbrains.com/resharper/webhelp/Reference__Search_with_Pattern.html )。
有任何想法吗?我也愿意使用其他插件或工具。
谢谢,
本