2010-08-04 4 views
2

Je voudrais comparer deux versions d'une classe. J'ai utilisé WinDiff, mais il montre beaucoup de différences en raison de différents commentaires, etc.Comment comparer les définitions de classe

Est-ce que quelqu'un connaît un outil pour comparer deux définitions de classe (champs, méthodes, etc.) pour .NET?

Merci,

Martin

Répondre

0

Notre Smart Differencer compare deux fichiers source de programmation langauge en termes de structures linguistiques, et non pas la mise en page du texte, il ignorera les commentaires et les changements blancs.

Il existe des versions pour de nombreuses langues, y compris C#, mais pas VB.net.

3

Vous pouvez utiliser WinMerge, qui fonctionne en principe comme WinDiff, mais vous pouvez définir des filtres en ligne décrivant les choses que vous voulez être ignoré (comme les commentaires).

Pour comparer les classes en fonction de leur structure, vous pouvez compiler les deux, utilisez Lutz Roeder's reflector pour les décompiler, puis comparez le résultat avec WinDiff ou WinMerge.

1

Si vous voulez comparer le code source, puis en utilisant une jolie formatter (par exemple, celui de VS) pour normaliser la mise en forme, vous aurez toujours besoin de gérer l'ordre des membres et des commentaires etc.

Mieux peut-être à utilisez Reflector sur les assemblys compilés. Sélectionnez chaque classe, développez ses méthodes (si vous souhaitez inclure l'implémentation de la méthode dans la comparaison), copiez-collez-la dans un fichier texte, puis comparez les fichiers texte.

Ceci devrait éliminer tous les détails non significatifs (c'est-à-dire pas dans l'assemblage).

(Note, il pourrait y avoir un plugin réflecteur pour le faire directement.)

Questions connexes