Dot.Blog

C#, XAML, Xamarin, WinUI/Android/iOS, MAUI

Astuce : recenser rapidement l'utilisation d'une classe dans une grosse solution

Une petite astuce rapide !

Comment recenser toutes les utilisations d'une classe précise dans une grosse solution pleine de projets ? Et avec n'importe quelle version de VS ?

Certains proposeront d'utiliser la fonction "find usage" de Resharper. Certes mais tout le monde n'a pas cet add-in. Et même si vous l'avez, vous n'êtes pas sûr que là où vous aurez à intervenir chez un client par exemple il sera installé sur la machine...

D'autres proposeront le Ctrl-F. Ce n'est pas mal mais ça trouvera aussi les bouts de texte qui citent la classe ou qui contiennent le nom de cette dernière, autant dire que sur un gros projet vous allez vite fatiguer et en oublier. Les plus torturés proposeront alors d'utiliser une expression régulière. Techniquement c'est mieux mais concevoir une belle ER qui fasse bien le boulot, tout le monde ne sait pas forcément faire. Et une ER peut être boguée... c'est du code. A bannir quand on veut être sûr et certain du résultat. 

Non, moi je vous parle d'un moyen ultra simple et absolument sûr de trouver toutes les utilisations d'une classe dans des tas projets en quelques secondes sans trop se fatiguer.

... Vous séchez ? Alors voici la réponse : l'attribut Obsolete.

C'est tout bête, c'est une utilisation un peu détournée de la chose il faut l'avouer, mais il suffit d'ajouter devant la définition de la classe en question l'attribut

 
[Obsolete("blabla")]
public class TheClassARepérer ...
 

et l'affaire est jouée. Faites un Rebuild de la solution et dans les warnings vous aurez la liste de tous les endroits où la classe est utilisée. Un double-clic vous amènera directement dans le code en question.

Quand l'opération est terminée, il suffit de supprimer l'attribut. La manip est ultra légère, peu de chance d'introduire un bug, et si on oublie l'attribut ça se verra tout de suite dans les warnings.

Malin non ?

Alors Stay Tuned !

Faites des heureux, partagez l'article !
blog comments powered by Disqus