10

ライブラリを逆コンパイルしようとしていますが、クラス名またはメソッド名をクリックすると、実装コードが空です。

例えば:

public bool MethodOne(string str)
{
    // nothing
}

どうなり得るか?

4

4 に答える 4

23

マルチターゲット サポートを提供するために Visual Studio で使用される参照アセンブリを反映しようとしている可能性があります。これらのアセンブリはメタデータのみであり、実際の実装はありません。

その場合は、VSCommands 2010 拡張機能を使用して、実装された実際のアセンブリへのパスを取得できます。

アセンブリの詳細 http://vscommands.com/wp-content/uploads/2011/04/image12.png

于 2010-06-06T14:01:36.993 に答える
2

VSSDK アセンブリでもこれを見てきました。

公開されているインターフェイス ライブラリである可能性がありますが、実際の実装はどこかに「隠されています」。(おそらくGACで?)

基本的な考え方は次のとおりです。

  1. 「スタブ」アセンブリに対してコードをコンパイルする
  2. アプリケーションに読み込まれると、スタブ アセンブリは解決されませんが、実際のアセンブリは解決されます。

デバッガーにブレークポイントを配置し、実際に読み込まれたアセンブリとその読み込み元を確認することをお勧めします。

于 2009-11-21T13:09:57.560 に答える
0

使用している .Net フレームワークのバージョンは? これが発生する.net 4.0アセンブリには問題があるようです...または、フォーラムの一部の人々が言っ​​ていることです: Reflector Forum

ILはありますか?

于 2009-11-21T13:03:38.163 に答える