当前位置:  编程技术>.net/c#/asp.net

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

    来源: 互联网  发布时间:2014-10-20

    本文导语:  程序思路:动态加载V4和V2的mscorlib.dll程序集,通过反射进行比较。之所以加载mscorlib.dll 是因为framework中的大部分类都在这里,而发生变更的也就是这里最多。第一步:新建控制台程序:加载程序集: 加载程序集完成后,自...

程序思路:动态加载V4和V2的mscorlib.dll程序集,通过反射进行比较。
之所以加载mscorlib.dll 是因为framework中的大部分类都在这里,而发生变更的也就是这里最多。

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

加载程序集:

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

获取了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();
}


程序运行结果如下:


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Javamail要JavaBeans Activation Framework 的支持,是什么意思?是不是也要下载JavaBeans Activation Framework?他是不是也是一个包?是不
  • android framework
  • The V C++ GUI Framework
  • Zend Framework Models Generator
  • Intel App Framework
  • 在Linux下可以装.NET Framework吗?
  • PHP的Web开发框架 epesi framework
  • G-Framework ToolKit
  • Ajax toolkit framework
  • UI 框架 Startup framework
  • YAML CSS framework
  • Web Tracing Framework
  • MOEA Framework
  • Eclipse Modeling Framework
  • Java批量作业框架 Java Batch Job Framework
  • 企业级应用框架 Moqui Framework
  • NIO 网络框架 NIO Framework
  • 自动化测试平台 Robot Framework
  • Ajax 框架 Spry framework for Ajax
  • Zend Framework


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3