2010-11-23 14 views
1

メタデータではなく適切なクラスにジャンプするにはどうすればよいですか?VS 2010の定義へ

Visual Studio 2010でC#コードで作業中一部のコードを右クリックして「Go To Definition」に移動します は、ときどきオブジェクトが定義する正しいクラスを表示し、時には正しいクラスではないメタデータを表示します。 。

なぜですか?そのクラスは、あなたのソリューションで利用可能な場合にのみ、あなたのクラスのソースコードを示してあなたの助け

答えて

8

ため

感謝。あなたが持っているソースを持つプロジェクトを参照している場合は、それをプロジェクト参照としてソリューションに追加することができ、 "Go To Definition"は期待どおりに動作するはずです。コンパイルされたDLLを参照している場合、「Go To Definition」はメタデータのみを表示します。

+0

+1。私はトピックのトリックを追加するのが好きです:外部参照のソースコードを表示するには、.NET Reflectorプラグインをインストールします。 (http://www.red-gate.com/products/reflector/) –

+1

DLLプロジェクトがソリューションに含まれている場合、同じ動作が発生します。コードはすぐそこにありますが、私はメタデータを取得します。 – DOK

+1

おそらく、DLLファイルへの参照をプロジェクトに追加するのではなく、追加しました。 –

1

参照がDLLまたはEXEの場合、Visual Studioはメタデータに移動します。これはソースコードについて「認識」していません。

プロジェクトを参照すると、ソースコードに移動します。 F12は、実際のソースコードになりますが、

他の人が言ったように
3

は、あなたが他のプロジェクトへの参照を追加した場合、Visual Studioがあなたの実際のソースを表示することはできませんコンパイルされた形式(例:.exeまたは.dll)でしかないアセンブリのコード。実際に何かが実装されているかどうかを確認する必要がある場合は、Reflectorを使用して逆コンパイルすることができますが、結果のコードは元のものよりも理解しにくいでしょう(コメントや変数名が失われるなど)。

1

をdefind場合DLLのために、それはメタデータに行くよりも、

関連する問題