我正在尝试反编译一个库,但是当我单击类名或方法名时,实现代码为空。
例如:
public bool MethodOne(string str)
{
// nothing
}
会是什么呢?
您可能正在尝试反映 Visual Studio 使用的引用程序集以提供多目标支持。这些程序集只有元数据,没有任何实际实现。
如果是这种情况,那么您可以使用VSCommands 2010 扩展来获取带有实现的实际程序集的路径。
组装细节 http://vscommands.com/wp-content/uploads/2011/04/image12.png
您可能打开了一个参考程序集或其中没有代码的 PIA。
方法体实际上可能是空的。
(其他可能性?)
我在 VSSDK 程序集中也看到了这一点。
它可能是一个公共提供的接口库,但实际的实现被“隐藏”在某个地方。(也许在 GAC 中?)
基本思路是:
我建议您在调试器中放置一个断点,并查看实际加载的程序集是什么以及从哪里加载它。
它使用的是什么版本的 .Net 框架?发生这种情况的 .net 4.0 程序集似乎存在一些问题......或者这就是论坛中的一些人所说的:Reflector Forum
有IL吗?