zoukankan      html  css  js  c++  java
  • 十个必备的.NET开发小工具(6):.NET Reflector

    作者:James Avery 翻译:lucentoff

    出处:http://msdn.microsoft.com/msdnmag/issues/04/07/MustHaveTools/default.aspx

    声明:版权属原作者所有,转载请注明出处!


     

    .NET Reflector

     

    .NET Reflector是一个类浏览器和反编译器,它能够检查程序集并显示其所有信息。.NET Framework 引入了反射的概念,利用反射可以检查任何基于.NET的代码,无论是单个的类还是完整的程序集。反射还可用于检索特定程序集中有关各种类、方法和属性的信息。使用.NET Reflector可以浏览程序集的类和方法,可以检查这些类和方法生成的微软中间语言(MSIL),可以反编译类和方法,还可以查看等效的C# Visual Basic? .NET代码。

     

    为了加以说明,我把前面的NUnitExample程序集加载到.NET Reflector中进行查看,如图7 所示。

     

     

    7 利用.NET Reflecto查看NUnitExample程序集

     

    .NET Reflector带有多种工具,你可以进一步检查这个程序集。如果要查看组成方法的MSIL,可以右键点击方法,然后从弹出菜单选择“Disassembler”。

     

    除了查看MSIL,你还可以通过选择工具菜单下的Decompiler查看方法的C#代码。也可以通过选择语言菜单查看方法反编译后的Visual Basic .NETDelphi代码。下面就是NET Reflector产生的C#代码:

     

    public void HashtableAddTest()
    { 
        Hashtable hashtable1;
        hashtable1 = new Hashtable();
        hashtable1.Add("Key1", "Value1");
        hashtable1.Add("Key2", "Value2");
        Assert.AreEqual("Value1", hashtable1["Key1"], 
           "Wrong object returned!");
        Assert.AreEqual("Value2", hashtable1["Key2"],
           "Wrong object returned!");
    }

     

    以上代码和我编写的实际代码非常像,下面是实际代码:

     

    public void HashtableAddTest()
    {
        Hashtable ht = new Hashtable();
                
        ht.Add("Key1", "Value1");
        ht.Add("Key2", "Value2");
     
        Assert.AreEqual("Value1", ht["Key1"],
            "Wrong object returned!");
        Assert.AreEqual("Value2", ht["Key2"],
            "Wrong object returned!");
    }

     

    尽管二者有点差别,但功能性相同。

     

    虽然用这个例子展示对比实际代码与反编译代码是个好方法,但我认为.NET Reflector最有用之处是利用它检查.NET Framework程序集和方法。.NET Framework 提供很多途径来执行类似的操作。例如,如果要从XML读数据集,可以使用XmlDocumentXpathNavigatorXmlReader等各种不同方法。使用.NET Reflector,你可以查看Microsoft公司怎样编写DataSetReadXml方法,或如何从配置文件读取数据。.NET Reflector对于查看HttpHandlerconfiguration handler等对象的创建也是一个很好的途径,因为你可以看看Microsoft开发组在.NET Framework中是如何实际构建这些对象的。

     

    .NET ReflectorLutz Roeder编写,下载网址:http://www.aisto.com/roeder/dotnet

     

    [译注:在新版本4.0.10.0中,界面或操作稍有不同]

  • 相关阅读:
    C++Primer 中间Sales_items.h头文件
    2014最不受欢迎10编程语言种
    解决ubuntu 14.04删ibus导致系统设置项目的损失后,,退出关机问题是不正常的
    会计翻译成英文
    Delphi 使用 Format格式话字符串的用法
    浅谈暂估应付账款的会计处理
    Delphi TcxTreelist 设置scrollbars 不起作用的原因
    Delphi 调试 通过BreakPoint
    折现率”的公式
    考会计证 需要的科目
  • 原文地址:https://www.cnblogs.com/luoyaoquan/p/2047660.html
Copyright © 2011-2022 走看看