使用Lutz Roeder’s .NET Reflector反编译.NET Compact Framework程序集
使用.NET Reflector(
反复几次测试后发现问题在于没有选择正确的程序集进行反编译,我选择System.Windows.Forms.dll来自C:\Program Files\Microsoft.NET\SDK\CompactFramework
\v2.0\WindowsCE\System.Windows.Forms.dll,这也是.NET CF Pocket PC 2003项目默认引用的程序集的路径。对这个程序集进行反编译的结果是只有方法的签名而没有实现。但对C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\Debugger\BCL\System.
Windows.Forms.dll进行反编译后得到了想要的结果,方法中有实现代码:
因此想要反编译查看.NET CF程序集时必须要注意需要要反编译正确的程序集。定位到可以反编译出实现代码的程序集有一个快捷的办法,从Reflector程序中选择File->Open List,再点击Add添加一个程序集列表,然后双击新添加的列表,从当前的程序集列表中选择.NET Compact Framework 2.0作为新的程序集列表,这样就可以快速定位到反编译出实现代码的程序集。
为什么.NET CF同一个程序集具有版本的差别,而且反编译的结果不相同?希望知道的网友告诉一下。