Ist es möglich, den .NET Framework-Quellcode zu lesen und in ihn zu gelangen?

8

Gibt es eine Möglichkeit für Benutzer, VS2008 zu verwenden, um den Quellcode für die MSDN-Bibliotheken zu öffnen und zu lesen?

Ich komme aus einem Java-Hintergrund, wo das möglich ist ...

    
Jack Kada 18.08.2009, 22:09
quelle

5 Antworten

21

Ja, es ist möglich. Sehen Sie sich den folgenden Blogbeitrag von Shawn Burke für Details an:

Konfigurieren Visual Studio zum Debuggen des .NET Framework-Quellcodes

Wenn Sie andererseits einfach ausprobieren möchten, wie bestimmte Dinge im .NET-Framework implementiert sind (ohne Debugging), dann verwenden Sie .NET Reflektor (wie von LorenVS erwähnt). Dies ist ein sehr nützliches Tool, mit dem Sie das .NET Framework sehr gut verstehen können.

    
M4N 18.08.2009, 22:11
quelle
4

Der beste Weg, den ich Ihnen geben kann, ist .NET Reflektor von RedGate. Sie können nicht hineingehen, aber Sie erhalten den vollständigen Quellcode für verschiedene .NET-Klassen.

    
LorenVS 18.08.2009 22:11
quelle
3

Meine 3 Cent:

  1. Wenn Sie Visual Studio 2008 SP1 oder höher installiert haben, müssen Sie das in Konfigurieren von Visual Studio zum Debuggen von .NET Framework-Quellcode Blogpost
  2. So ein Fan wie ich von .NET Reflector bin, ist der Quellcode besser, weil lokale Variablennamen und Kommentare beibehalten werden. Kommentare und richtige Variablennamen können sehr hilfreich sein!
  3. Sie können (fast) alle .NET Framework-Quellcodes gleichzeitig herunterladen mit NetMassDownloader . Dies wird sehr nützlich, wenn Sie an einem Ort ohne Internetzugang sind.
Alfred Myers 18.08.2009 23:07
quelle
2

Ich habe vor kurzem ein Debugging in VS durchgeführt, das den Bezug von .NET-Quellcode (in Bezug auf OleDB) beinhaltete, in den ich hineingehen und sehen konnte, was da los war. Eine Sache, die ich erwähnen möchte, wenn Sie durch den .NET-Quellcode gehen, erwarten Sie nicht, dass das lokale Fenster (oder Datentipps) Ihnen immer den Wert von Variablen zeigt.

Zum Beispiel, einfache Variablen wie int, longs, string, etc., können Sie den Wert von erhalten. Versuchen Sie jedoch, den Wert von Objekten zu erhalten (List & lt; & gt ;, benutzerdefinierte Objekte, DataTable usw.), und Sie erhalten nichts als eine Nachricht, die besagt, dass der Code optimiert wurde und Sie die Werte nicht sehen können.

Obwohl Sie die .NET-Quelle haben, ist der eigentliche kompilierte Code, an den Sie angehängt sind, der Release-Build mit aktivierten Optimierungen. Dies bedeutet, dass ein Großteil der Daten für Variablen und Objekte nicht analysiert werden kann.

Nur ein Heads-up.

    
Jason Evans 18.08.2009 22:24
quelle
1

Es ist möglich, Reflektion und ILDASM zu verwenden, um die IL zu betrachten, aber ich denke nicht, dass es möglich ist, während des Debugging in den Code zu gehen.

    
DevByDefault 18.08.2009 22:13
quelle