Как сравнить определения классов - PullRequest
2 голосов
/ 04 августа 2010

Я хотел бы сравнить две версии класса. Я использовал WinDiff, но он показывает много различий из-за разных комментариев и т. Д.

Кто-нибудь знает инструмент для сравнения двух определений классов (полей, методов и т. Д.) Для .NET?

Спасибо

Martin

Ответы [ 3 ]

3 голосов
/ 04 августа 2010

Вы можете использовать WinMerge , который в принципе работает как WinDiff, но вы можете определить линейные фильтры, описывающие то, что вы хотите игнорировать (например, комментарии).

Чтобы сравнить классы по их структуре, вы можете скомпилировать оба, используя Отражатель Лутца Редера , чтобы декомпилировать их, а затем сравнить результат с WinDiff или WinMerge.

1 голос
/ 04 августа 2010

Если вы хотите сравнить исходный код, то при использовании симпатичного средства форматирования (например, в VS) для нормализации форматирования вам все равно потребуется обработать порядок элементов и комментариев и т. Д.

Возможно, лучшеиспользовать Reflector на скомпилированных сборках.Выберите каждый класс, разверните его методы (если вы хотите включить реализацию метода в сравнение), скопируйте и вставьте в текстовый файл, а затем сравните текстовые файлы.

Это должно устранить все несущественные (то есть не в сборке) детали.

(Обратите внимание, может быть подключаемый модуль Reflector, чтобы сделать это напрямую.)

0 голосов
/ 06 августа 2010

Наш Smart Differencer сравнивает два исходных файла языка программирования с точки зрения языковых структур, а не разметки текста, поэтому он игнорирует комментарии и изменения пробелов.

Существуют версии для многих языков, включая C #, но не VB.net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...