【发布时间】:2011-03-07 01:04:07
【问题描述】:
由于 resharper 仍然没有对实现 IDisposable 的对象发出任何警告,我想创建一些在 resharper 5.0 中可用的自定义搜索模式。
到目前为止,我有这个:
(不要介意我在模式中替换 cmets,我并不关心它,我只想在处理一次性对象时在代码中明确警告。)
- <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。
我确定有办法,但我找不到。
【问题讨论】:
标签: c# .net resharper idisposable