2010-11-04 5 views
2

Nous avons été invités à fournir tous les messages d'erreur possibles dans notre code à des fins de soutien. Malheureusement, ils ne sont pas tous situés dans des fichiers de ressources, donc je pense que si nous pouvons obtenir une liste de toutes les chaînes dans l'application, nous pouvons filtrer les messages d'erreur à partir de là.obtenir toutes les chaînes dans le fichier de code C#

Y a-t-il quelque chose qui me permettrait de le faire dans une application C#?

Vive

Répondre

3

Si vous avez ReSharper 5, vous pouvez utiliser leur localization feature pour vous aider à le faire.

Activez la localisation pour votre projet, puis cliquez avec le bouton droit sur le projet et sélectionnez Rechercher les problèmes de code. Il liste toutes les instances d'une chaîne codée en dur dans l'application. (Sauf si vous avez Localizable(false))

+0

+ 1 bonne idée, je ne sais pas R # l'a fait –

+0

awesome Je pense que ça va marcher, je vais essayer! –

1

Si vous pouvez penser à une chaîne cohérente que vous utilisez sur chaque ligne de message (par exemple, « throw new exception (» ou « MessageBox.Show (», il peut être aussi simple que d'appuyer sur Ctrl + Maj . + F dans Visual studio (trouver dans des fichiers), en tapant dans, puis de copier les résultats dans un fichier

Avant de sauter dans la terre Regex, vérifier cela: Regex to parse C# source code to find all strings

7

Comment l'utilisation de la fonction de recherche comme tel alt text

Vous pouvez également utiliser des expressions régulières si vous avez des motifs et être détaillé dans votre recherche en changeant le "Use" en "Regular Expressions"

+0

ne fonctionnera pas si la chaîne contient des guillemets doubles échappés: '" foo \ "bar" ' –

+3

@Thomas Levesque: Je dirais que ce n'est pas grave car le motif trouvera toutes les lignes contenant un littéral de chaîne (sauf si vous voulez faire un remplacement automatique, que je préfèrerais ne pas avoir lieu) –

+0

@ 0xA3, bon point ... –

1

Je suis sûr qu'il y a des expressions RegEx ou certaines que vous pourriez exécuter sur votre base de code et peut-être attraper toutes les chaînes. Voyant que c'est une exigence de l'entreprise et que vous risquez de le répéter à l'avenir, je me suis mis à refactoriser d'abord tous mes messages d'erreur dans un format structuré. Ensuite, automatisez l'analyse du format structuré. Des fichiers de ressources peuvent être appropriés.

Questions connexes