十个必备的.NET开发小工具(6):.NET Reflector
2004-07-13 10:53
375 查看
作者:JamesAvery翻译:lucentoff出处:http://msdn.microsoft.com/msdnmag/issues/04/07/MustHaveTools/default.aspx 声明:版权属原作者所有,转载请注明出处![align=left][/align][align=left][/align].NETReflector.NETReflector是一个类浏览器和反编译器,它能够检查程序集并显示其所有信息。.NETFramework引入了反射的概念,利用反射可以检查任何基于.NET的代码,无论是单个的类还是完整的程序集。反射还可用于检索特定程序集中有关各种类、方法和属性的信息。使用.NETReflector可以浏览程序集的类和方法,可以检查这些类和方法生成的微软中间语言(MSIL),可以反编译类和方法,还可以查看等效的C#或VisualBasic?.NET代码。为了加以说明,我把前面的NUnitExample程序集加载到.NETReflector中进行查看,如图7所示。
图7利用.NETReflecto查看NUnitExample程序集.NETReflector带有多种工具,你可以进一步检查这个程序集。如果要查看组成方法的MSIL,可以右键点击方法,然后从弹出菜单选择“Disassembler”。除了查看MSIL,你还可以通过选择工具菜单下的Decompiler查看方法的C#代码。也可以通过选择语言菜单查看方法反编译后的VisualBasic.NET或Delphi代码。下面就是NETReflector产生的C#代码:http://www.aisto.com/roeder/dotnet。[译注:在新版本4.0.10.0中,界面或操作稍有不同]
图7利用.NETReflecto查看NUnitExample程序集.NETReflector带有多种工具,你可以进一步检查这个程序集。如果要查看组成方法的MSIL,可以右键点击方法,然后从弹出菜单选择“Disassembler”。除了查看MSIL,你还可以通过选择工具菜单下的Decompiler查看方法的C#代码。也可以通过选择语言菜单查看方法反编译后的VisualBasic.NET或Delphi代码。下面就是NETReflector产生的C#代码:
publicvoidHashtableAddTest()
{
Hashtablehashtable1;
hashtable1=newHashtable();
hashtable1.Add("Key1","Value1");
hashtable1.Add("Key2","Value2");
Assert.AreEqual("Value1",hashtable1["Key1"],
"Wrongobjectreturned!");
Assert.AreEqual("Value2",hashtable1["Key2"],
"Wrongobjectreturned!");
}以上代码和我编写的实际代码非常像,下面是实际代码:
publicvoidHashtableAddTest()
{
Hashtableht=newHashtable();
ht.Add("Key1","Value1");
ht.Add("Key2","Value2");
Assert.AreEqual("Value1",ht["Key1"],
"Wrongobjectreturned!");
Assert.AreEqual("Value2",ht["Key2"],
"Wrongobjectreturned!");
}尽管二者有点差别,但功能性相同。虽然用这个例子展示对比实际代码与反编译代码是个好方法,但我认为.NETReflector最有用之处是利用它检查.NETFramework程序集和方法。.NETFramework提供很多途径来执行类似的操作。例如,如果要从XML读数据集,可以使用XmlDocument、XpathNavigator或XmlReader等各种不同方法。使用.NETReflector,你可以查看Microsoft公司怎样编写DataSet的ReadXml方法,或如何从配置文件读取数据。.NETReflector对于查看HttpHandler或configurationhandler等对象的创建也是一个很好的途径,因为你可以看看Microsoft开发组在.NETFramework中是如何实际构建这些对象的。.NETReflector由LutzRoeder编写,下载网址:
相关文章推荐
- 十个必备的.NET开发小工具(6):.NET Reflector
- 十个必备的.NET开发小工具(6):.NET Reflector
- 十个必备的.NET开发小工具(9 & 10):版本切换和转换工具
- 每个.NET 开发人员应该下载的十个必备工具
- .NET 开发人员十个必备工具
- 每个.NET 开发人员应该下载的十个必备工具
- 每个.NET 开发人员应该下载的十个必备工具
- .NET 开发人员应该下载的十个必备工具 [转]
- 每个.NET 开发人员应该下载的十个必备工具
- 十个必备的.NET开发小工具(3):CodeSmith
- 每个.NET 开发人员应该下载的十个必备工具
- .NET开发人员应该下载的十个必备工具
- 每个.NET 开发人员应该下载的十个必备工具
- 每个.NET 开发人员应该下载的十个必备工具
- .NET 开发人员应该下载的十个必备工具
- .NET 开发人员应该下载的十个必备工具
- .NET 开发人员该下载的十个必备工具
- 每个.NET 开发人员应该下载的十个必备工具
- 十个必备的.NET开发小工具(2):Regulator
- .NET 开发人员该下载的十个必备工具