J'ai une méthode générique
"Foo<TheType>("
6 Réponses :
Comme vous l'avez mentionné, vous pouvez utiliser la recherche de texte de " foo
foo (thetype code>" où il est inféré p>
Peut-être que je n'étais pas clair: il y a des centaines de types différents passés comme t, et on peut en déduire la plupart du temps quel type il est. Je veux trouver des appels où T est un type spécifique.
Exécutez l'assemblage via ilasme et recherchez la signature de méthode appropriée, puis travaillez à l'envers dans le démontage pour obtenir un fichier source et un numéro de ligne. P>
Ça marche. D'autre part, j'ai déjà une règle FXCOP qui me dit où sont ces appels. Je suis juste curieux si je peux le faire plus rapidement / plus facile que cela (c'est-à-dire directement à la source).
Dans la version suivante de Resharper, cela sera couvert par la fonctionnalité "Recherche avec modèle". http://youtrack.jetbrains.net/issue/rsrp-288080 P>
Vous pouvez éventuellement obtenir le compilateur pour vous aider à les trouver à l'aide de l'ancienne approche Break-it-it-and-and-See-What-Ne-compile: si le type T en question est votre propre code, essayez de changer de définition de sorte qu'il ne met plus implémente IsomeInterface. P>
J'ai essayé de suivre le modèle de recherche Restomer (Resharper-> Tools-> MotifCatalog-> Ajouter un motif): P>
Modèle de recherche: FOO ($ Arg $)
Espace réservé: arg = expression qui est de type thetype p>
Enregistrer ensuite et cliquez sur "Rechercher maintenant". p>
Est-ce que cela fonctionne? Quelle version de Resharper? Est-ce la "prochaine" version Evgeny parlà dans sa réponse? Je n'ai que r # 5.1 pour le moment.
Déclarez temporairement la méthode non générique et trouvez ses utilisations.
public void Foo(TheType arg) { }
JetBrains commente sur Cet émission similaire / associé suggère que ce n'est pas disponible actuellement. Il me semble que la recherche structurelle et remplacer devrait i> être capable de le faire, mais je n'arrive pas à le faire fonctionner