源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-04-24 23:53 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:在Framework 4.0中:找出新增的方法与新增的类(一)
程序思路:动态加载V4和V2的mscorlib.dll程序集,通过反射进行比较。 之所以加载mscorlib.dll 是因为framework中的大部分类都在这里,而发生变更的也就是这里最多。 [b]第一步:新建控制台程序: [/b] 加载程序集: [img]http://files.jb51.net/file_images/article/201305/20130513170158141.png[/img] 加载程序集完成后,自然要获取程序集中的所有Type,这里直接使用默认的GetTypes方法。 [img]http://files.jb51.net/file_images/article/201305/20130513170158142.png[/img] 获取了v4Types v2Types之后,就要对v2Types里面的所有Typev4Types里面的所有Type进行比较, 而比较的内容就是GetMembers返回的所有MemberInfo. [b]完整代码如下: [/b]
[u]复制代码[/u] 代码如下:
static void Main(string[] args) {     string v4AssemblyPath = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll";     string v2AssemblyPath = @"C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.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(); }
[b]程序运行结果如下:[/b] [img]http://files.jb51.net/file_images/article/201305/20130513170158143.png[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部