首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么比较两个类名和成员名不同的类,实际上相同的类

2012-04-26 
如何比较两个类名和成员名不同的类,实际上相同的类?用reflector还原了一个很大的DLL,但由于属性名和方法名

如何比较两个类名和成员名不同的类,实际上相同的类?
用reflector还原了一个很大的DLL,但由于属性名和方法名很多相同,a,b,c,属性和方法都很简单的命名,存在二义性,很多错误,无法执行,所以就混淆了一下,改变成复杂的成员名,结果不是太满意,特别是接口和继承存在好多没有变化。错误三四千个,修改了一个周了,都不行。
  我想获得一个类的属性、方法名称、方法体内容,然后找到混淆后的类,判断如果相同,就分别替代。

[解决办法]
使用反射区比较。

C# code
if (typeof(ClassA).GetProperties().Select(x => x.Name).Except(typeof(ClassB).GetProperties().Select(x => x.Name)).Count() == 0 && typeof(ClassB).GetProperties().Select(x => x.Name).Except(typeof(ClassA).GetProperties().Select(x => x.Name)).Count() == 0){    //说明ClassA和ClassB有完全一样的属性名集合。但是不保证类型一样。你可以完善这个代码。} 

热点排行