2010-11-23 12 views
1

Was muss ich tun, um zur richtigen Klasse zu springen, nicht die Metadaten?Gehe zur Definition in VS 2010

in Visual Studio 2010 während der Arbeit an C# code ich rechts auf einen Code klicken, um zu "Go to Definition" zu springen zeigt manchmal die richtige Klasse, wo mein Objekt definiert ist und manchmal zeigen mir die Metadaten nicht die richtige Klasse .. .

warum ist das?

Dank für Ihre Hilfe

Antwort

8

Es zeigt Ihnen nur den Quellcode einer Klasse, wenn diese Klasse in Ihrer Lösung zur Verfügung steht. Wenn Sie auf ein Projekt verweisen, dessen Quelle Sie haben, können Sie es der Projektmappe als Projektverweis hinzufügen, und "Gehe zu Definition" sollte sich wie erwartet verhalten. Wenn Sie auf eine kompilierte DLL verweisen, zeigt "Gehe zu Definition" nur Metadaten an.

+0

+1. Ich füge gerne einen Out-of-Topic-Trick hinzu: Um den Quellcode externer Referenzen zu sehen, installiere das .NET Reflector-Plugin. (http://www.red-gate.com/products/reflector/) –

+1

Ich bekomme das gleiche Verhalten, wenn das DLL-Projekt in der Lösung ist. Der Code ist genau dort, aber ich bekomme Metadaten. – DOK

+1

Möglicherweise haben Sie den Verweis auf die DLL-Datei hinzugefügt, anstatt sie dem Projekt hinzuzufügen. –

1

Visual Studio wird zu den Metadaten gehen, wenn die Referenz eine DLL oder eine EXE ist - es "weiß" nicht über den Quellcode.

Es wird zum Quellcode gehen, wenn Sie ein Projekt Referenzen haben.

3

wenn Sie Verweise auf anderes Projekt hinzugefügt als F12 zum eigentlichen Quellcode gehen wird, sondern für die DLL wird es um die Meta-Daten gehen, wenn

defind
1

Wie andere gesagt haben, kann Visual Studio zeigt Ihnen nicht die tatsächliche Quelle Code für eine Assembly, die Sie nur in kompilierter Form (dh .exe oder .dll) haben. Wenn Sie wirklich sehen müssen, wie etwas implementiert wurde, dann können Sie Reflector verwenden, um es für Sie zu dekompilieren, obwohl der resultierende Code wahrscheinlich weniger verständlich ist als das Original (keine Kommentare, Variablennamen werden verloren gehen, usw.).

Verwandte Themen