如何比较类定义

时间:2010-08-04 09:32:46

标签: .net comparison

我想比较一个类的两个版本。我使用过WinDiff,但由于评论不同等原因,它显示出很多差异。

有没有人知道比较.NET的两个类定义(字段,方法等)的工具?

谢谢,

马丁

3 个答案:

答案 0 :(得分:3)

您可以使用WinMerge,它原则上像WinDiff一样工作,但您可以定义行过滤器来描述您想要忽略的内容(如注释)。

要按类结构比较类,可以编译它们,使用Lutz Roeder's reflector对它们进行反编译,然后将结果与WinDiff或WinMerge进行比较。

答案 1 :(得分:1)

如果你想比较源代码,然后使用漂亮的格式化程序(例如VS中的格式化程序)来规范化格式化,你仍然需要处理成员和评论的排序等。

更好的方法是在编译的程序集上使用Reflector。选择每个类,展开其方法(如果要在比较中包含方法实现),复制并粘贴到文本文件中,然后比较文本文件。

这应该消除所有非重要的(即不在集合中)细节。

(注意,可能有一个Reflector插件直接执行此操作。)

答案 2 :(得分:0)

我们的Smart Differencer在语言结构方面比较了两个编程语言源文件,而不是文本布局,因此它将忽略注释和空白更改。

有许多语言的版本,包括C#,但不包括VB.net。