在Framework 4.0中:找出新增的方法与新增的类(一)
在Framework 4.0中:找出新增的方法与新增的类(一)
发布时间:2016-12-28 来源:查字典编辑
摘要:程序思路:动态加载V4和V2的mscorlib.dll程序集,通过反射进行比较。之所以加载mscorlib.dll是因为framework中...

程序思路:动态加载V4和V2的mscorlib.dll程序集,通过反射进行比较。

之所以加载mscorlib.dll 是因为framework中的大部分类都在这里,而发生变更的也就是这里最多。

第一步:新建控制台程序:

加载程序集:

在Framework 4.0中:找出新增的方法与新增的类(一)1

加载程序集完成后,自然要获取程序集中的所有Type,这里直接使用默认的GetTypes方法。

在Framework 4.0中:找出新增的方法与新增的类(一)2

获取了v4Types 和v2Types之后,就要对v2Types里面的所有Type于v4Types里面的所有Type进行比较,

而比较的内容就是GetMembers返回的所有MemberInfo.

完整代码如下:

复制代码 代码如下:

static void Main(string[] args)

{

string v4AssemblyPath = @"C:WindowsMicrosoft.NETFrameworkv4.0.30319mscorlib.dll";

string v2AssemblyPath = @"C:WindowsMicrosoft.NETFrameworkv2.0.50727mscorlib.dll";

//Assembly v4Assembly = typeof(object).Assembly;

Assembly v4Assembly = Assembly.LoadFile(v4AssemblyPath);

Assembly v2Assembly = Assembly.LoadFile(v2AssemblyPath);

Type[] v4Types = v4Assembly.GetTypes();

Type[] v2Types = v2Assembly.GetTypes();

foreach (Type v2Type in v2Types)

{

Type v4Type = v4Types.First(t => t.FullName == v2Type.FullName);

MemberInfo[] v2Mis = v2Type.GetMethods();

MemberInfo[] v4Mis = v4Type.GetMethods();

if (v2Mis.Length != v4Mis.Length)

{

foreach (MemberInfo v2Mi in v2Mis)

{

bool isExist = false;

foreach (MemberInfo v4Mi in v4Mis)

{

if (v2Mi.Name == v4Mi.Name)

{

isExist = true;

break;

}

}

if (!isExist)

{

Console.WriteLine("{0}:{1}", v2Type.FullName, v2Mi.Name);

}

}

}

}

Console.WriteLine("程序执行完毕!");

Console.ReadLine();

}

程序运行结果如下:

在Framework 4.0中:找出新增的方法与新增的类(一)3

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类