Puisque resharper ne donne toujours aucun avertissement concernant les objets implémentant IDisposable, j'aimerais créer des modèles de recherche personnalisés disponibles dans resharper 5.0.Motif de recherche personnalisé Resharper pour avertir les objets IDisposable
Jusqu'à présent, j'ai ceci:
(Et ne me dérangerait pas mes remplacer des commentaires dans les modèles, je ne suis pas vraiment à ce sujet, je veux juste un avertissement clair dans le code lorsqu'ils traitent avec des objets à usage unique
- <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>
Ceci gère les cas de déclaration de variables, par ex.
Bitmap myBitmap = GetBitmap();
private Bitmap _bitmap;
et les appels CTOR, par ex.
var myBitmap = new Bitmap(...);
Ce qu'il ne supporte pas, est la suivante:
var myBitmap = GetBitmap();
Je ne peux pas trouver un exemple de la façon de définir un modèle de recherche qui soit trouver l'utilisation « var », ou une méthode type de retour, c'est-à-dire typeof IDisposable.
Je suis sûr qu'il y a un moyen, je ne peux pas le trouver cependant.
Bien sûr, je comprends cela, mais tout ce que je veux, c'est un avertissement quand un objet jetable est d'abord déclaré. Merci pour les questions, mais elles ne semblent pas fonctionner. Si j'utilise seulement $ expression $, cela fonctionne, mais avertit chaque fois que l'objet est utilisé, où je veux un avertissement seulement dans la déclaration. – Rita