手机
当前位置:查字典教程网 >编程开发 >C#教程 >在Framework 4.0中:找出新增的方法与新增的类(一)
在Framework 4.0中:找出新增的方法与新增的类(一)
摘要:程序思路:动态加载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

【在Framework 4.0中:找出新增的方法与新增的类(一)】相关文章:

C# cmd中修改显示(显示进度变化效果)的方法

C# 获取打印机当前状态的方法

c# 获取数据库中所有表名称的方法

c# winform取消右上角关闭按钮的实现方法

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

C#读写文件的方法汇总

C#操作目录与文件的方法步骤

C#连接Oracle数据库的实例方法

C#中方法的详细介绍

探讨C#中Dispose方法与Close方法的区别详解

精品推荐
分类导航