由于resharper仍然不会对实现IDisposable接口的对象发出任何警告,我想在resharper 5.0中创建一些自定义搜索模式。
到目前为止,我有这个:
(不要在模式中注意我的替换注释,我并不真的关心它,我只想在处理可处理对象时清晰地警告代码。)
- <CustomPatterns>
- <Pattern Severity="WARNING">
<Comment>This class implements IDisposable interface.</Comment>
<ReplaceComment>Please use Using statement, or dispose the object manually when done using.</ReplaceComment>
<SearchPattern>$type$</SearchPattern>
<Params />
- <Placeholders>
<IdentifierPlaceholder Name="var" Type="" ExactType="False" RegEx="" CaseSensitive="True" />
<TypePlaceholder Name="type" Type="System.IDisposable" ExactType="False" />
<ArgumentPlaceholder Name="args" Minimal="-1" Maximal="-1" />
</Placeholders>
</Pattern>
- <Pattern Severity="WARNING">
<Comment>This class implements IDisposable interface.</Comment>
<ReplaceComment>Please use Using statement, or dispose the object manually when done using.</ReplaceComment>
<SearchPattern>new $type$($args$)</SearchPattern>
<Params />
- <Placeholders>
<IdentifierPlaceholder Name="var" Type="" ExactType="False" RegEx="" CaseSensitive="True" />
<TypePlaceholder Name="type" Type="System.IDisposable" ExactType="False" />
<ArgumentPlaceholder Name="args" Minimal="-1" Maximal="-1" />
</Placeholders>
</Pattern>
</CustomPatterns>
这里涉及到变量声明的情况,例如:
Bitmap myBitmap = GetBitmap();
private Bitmap _bitmap;
和 CTOR 调用,例如。
var myBitmap = new Bitmap(...);
它不支持以下内容:
var myBitmap = GetBitmap();
我找不到任何如何定义搜索模式的示例,该模式将查找“var”使用或typeof IDisposable的方法返回类型。
我相信有一种方法,但我找不到它。