Reflector6.5升级后最新版
NET程序员的开发利器.NET Reflector
一、 简介
程序集,作为.NET时代的动态链接库,蕴藏了太多的软件秘密。为此,Visual Studio内置的ILDASM成为最初挖掘程序集的上佳工具。但自从Reflector出现后,ILDASM相形见拙。因为,Reflector能提供更多的程序集信息,而且是免费的工具。
如今,在Visual Studio.NET中编译源代码(无论是VB还是C#)时,编译器都会将高级源代码翻译成MSIL,即“微软中间语言”,而不是特定的机器指令。具有更多安全性、版本控制、共享能力与其它相关元数据的中间语言(IL),是包在一个或多个DLL或可执行文件中的。
基于ILDASM检查程序集中的IL有时很有用,但它要求我们熟悉MSIL。通常,比起IL,大多数开发人员对像C#或Visual Basic这样的高级程序设计语言更为熟悉。
Reflector的出现使.NET程序员眼前豁然开朗,因为这个免费工具可以将.NET程序集中的中间语言反编译成C#或者Visual Basic代码。除了能将IL转换为C#或Visual Basic以外,Reflector还能够提供程序集中类及其成员的概要信息、提供查看程序集中IL的能力以及提供对第三方插件的支持。
二、 下载与运行Reflector
Reflector是由微软员工Lutz Roeder编写的免费程序。这个软件经常更新,你可以在http://www.aisto.com/roeder/dotnet下载最新的版本。在本文成文之时,Reflector的最新版本为5.0.35.0,仅有1M大小。只要双击下载后的Reflector.exe文件即可运行Reflector。
默认情况下,Reflector会打开一组公共程序集(mscorlib、System、System.Data、System.Drawing等等)。每个打开的程序集都列在Reflector的主窗口中。单击程序集旁边的+图标可以展开树结构并展示程序集的命名空间。每个命名空间旁边都有一个相关的+图标,单击这个图标将显示这个命名空间内的类。除此以外,还可以展开每个类,显示类的成员:事件、字段、方法与属性。
要想查看其它程序集(包括我们自己创建的程序集)的细节,你可以使用菜单命令“File→Open”。然后,浏览到想要查看的程序集。只要选择了有效的.NET程序集,这个程序集就可以在Reflector的主窗口中与其它默认程序集共同显示。要想从Reflector的主窗口中删除程序集,只需右击程序集并选择“Close”。
三、 使用Reflector反汇编程序集
提供基本的程序集是Reflector唾手可得的功能,然而,Reflector真正的威力体现在它的反汇编能力。只要浏览到类级的成员,就可以通过Tools菜单中的Disassembler项(或在该项上单击右键)反汇编此成员。这将打开第二个窗格,以C#、Visual Basic、Delphi或者IL显示反汇编后的内容。图2以C#语言展示了对SmtpClient类中Abort方法的反汇编结果。
有了Reflector的反编译功能,要研究.NET框架基类库就容易多了。我们完全可以在没有源代码的情况下研究我们所创建或者正在使用的程序集相应源代码。
不用太担心,你自己的.NET应用程序还有其它受保护措施。但是,想阻止别人查看.NET程序集的IL(继而反编译成C#或者Visual Basic)是不可能的,但你可以使用“混淆”技术使IL变得混乱。目前,市场上有许多.NET混淆产品,比如:PreEmptive Solution的Dotfuscator、WiseOwl的Dmeanor以及Remotesoft的.NET Obfuscator等。
四、 Reflecator的其它功能
除了作为对象浏览器与反汇编器之外,Reflector还可以显示类与其成员的调用与被调用图、提供单键访问Google或MSDN搜索的能力并提供了允许第三方开发人员为Reflector创建插件的框架。
要查看调用或被调用图,只需要在树视图中选择一个成员,访问Tools菜单,选择Call Graph或Callee Graph选项即可。Call Graph会列出所选项所调用的成员,而Callee Graph列出调用所选项的成员。
通过使用插件,Reflector的功能可以得到进一步扩展。目前有能显示程序集依赖图、自动加载当前运行中的程序集、输出整个程序集的反汇编内容以及在Visual Studio中作为Reflector的宿主等的插件。还有更多插件都列在http://www.codeplex.com/reflectoraddins中。在此,我极力推荐有兴趣的读者前去一看。
不出乎所料,的确存在一个Reflector.VisualStudio插件。有了这个插件,就可以让Reflector集成在Visual Studio环境中,进而取代以前那个有些“拙漏”的对象浏览器。
首先,我们需要在机器上准备Reflector的最新版,然后从http://www.testdriven.NET/reflector下载最新版本的Reflector.VisualStudio插件。据说安装了此插件之后,Reflector能够与Visual Studio完美融合。但遗憾的是,本人试下载此软件并安装(仅能得到TestDriven.NET-2.8.2130 RTM个人测试版本,时间7/30/2007,大小3.3M)后,没有大发现—仅是在VS2005中添加“Go to Reflector”和一个帮助菜单项。点击“Go to Reflector”菜单项仅是从VS2005内部启动Reflector而已。
有了Reflector.VisualStudio插件(正版,下面是根据在线资料介绍),Reflector可以寄在Visual Studio中Reflector不仅是一个对象浏览器、反汇编器,包裹在同一个程序中的所有功能还可以寄于Visual Studio中。
五、 小结
还记得Spy++吗?在Win32时代,这个软件对于我们分析一个陌生软件的设计思路可谓立下汗马功劳。在如今的.NET时代,Reflector又成为每个严肃的.NET开发人员工具箱中必不可少的精髓工具之一。怎么样,请赶紧试锋吧。
MSChart控件文档资料合集.doc
介绍MSChart的常用属性和事件 2
数据源绑定(一),具体代码如下: 6
数据源绑定方式(二) 8
数据源绑定(三): 9
数据源绑定(四): 11
数据源绑定(四)——行绑定 13
数据源绑定(五) 15
MSChart的研究(二) 收藏 17
一.数据源——xml 18
二.数据源——Excel 18
三.数据源——CSV文件 20
继续对MSChart学习:本次主要针对MSChart的图形交互和AJAX的应用。 22
二. AJAX(一)——Click Event 23
三. AJAX(二)——Chart as Trriger 29
四. AJAX(三)——AJAX更新 31
五. AJAX(四)——Real Time Chart 35
解决MSChart底部横坐标显示不全的问题 收藏 38
mschart 上下限阈值 画横线 收藏 38
MSChart for vs2008 收藏 39
MSCHART全部属性方法介绍 收藏 41
在access 中创建库表(.net实现) 57
MSChart学习帮助-开发日志(二).net 3.5 图表控件 收藏 62
三个电压,三个电流 70
.NET MSChart应用的一个简单例子 76
初试 ASP.NET Chart Control 83
微软图表控件使用初探--数据绑定(交叉表) 88
MSChart图表控件的一些使用 96
微软Chart控件导学--数据绑定 110
Mschart学习(MSchart介绍) 116
微软图表控件MsChart使用初探 122
微软Chart控件导学--渲染图表 135
MDAC2.8版本下载
MDAC2.8可以用,自己试过,MDAC2.8可以用,自己试过,MDAC2.8可以用,自己试过
C# 读取U盘盘符源码(Vs2008)
C# 读取U盘盘符源码(Vs2008),简单方便
C# backgroundWorker控件使用
C# backgroundWorker控件使用C# backgroundWorker控件使用C# backgroundWorker控件使用C# backgroundWorker控件使用C# backgroundWorker控件使用C# backgroundWorker控件使用
功能强大的免费音频转换器
功能和强大,而且免费的,不用任何注册
功能和强大,而且免费的,不用任何注册
功能和强大,而且免费的,不用任何注册
功能和强大,而且免费的,不用任何注册
Access的Northwind.mdb数据库
Access的Northwind.mdb数据库Access的Northwind.mdb数据库Access的Northwind.mdb数据库
SWF转FLA(Flash反编译软件)
SWF转FLA(Flash反编译软件)方便快捷!!
简洁留言薄asp代码,通俗易懂
一个简介不错的留言薄,代码是ASP ,一个简介不错的留言薄,代码是ASP